首页 新闻 搜索 专区 学院

直接用sql语句能实现吗?

0
悬赏园豆:20 [已解决问题] 解决于 2011-10-13 08:21

有表tb, 如下:

id    value  remk

----- ------  -------

1     aa       123

1     bb        123

2     aaa     123

2     bbb      123

2     ccc

 

需要得到结果:

id     values     remk

------ ---------   --------

1      aa          123

        bb          123

2      aaa        123

        bbb       123

        ccc         123

一缕秋丝的主页 一缕秋丝 | 初学一级 | 园豆:3
提问于:2011-09-05 11:26
< >
分享
最佳答案
0

你好,

请问一下是SQL 2005以上的版本么?

收获园豆:20
dotNetDR_ | 老鸟四级 |园豆:2058 | 2011-09-05 15:36

恩是的,sql2005

 

一缕秋丝 | 园豆:3 (初学一级) | 2011-09-05 17:00

@一缕秋丝:

;WITH CTE_1 AS (
SELECT 1 [id], 'aa' [value], '123' [reme] UNION ALL
SELECT 1, 'bb', '123' UNION ALL
SELECT 2, 'aaa', '123' UNION ALL
SELECT 2, 'bbb', '123' UNION ALL
SELECT 2, 'ccc', '123'
),
CTE_2
AS (
SELECT
row_number()
OVER(PARTITION BY [id] ORDER BY [id], [value]) [RowID],
*
FROM CTE_1
)
SELECT
CASE [RowID]
WHEN 1 THEN [id]
ELSE NULL
END [id],
[value],
[reme]
FROM
CTE_2
--SELECT
--
CASE [RowID]
--
WHEN 1 THEN CAST([id] AS VARCHAR(100))
--
ELSE ''
--
END [id],
--
[value],
--
[reme]
--
FROM
--
CTE_2
上述是我的实现,下面上个效果图.如果答案对你有帮助请给予答案,谢谢!

dotNetDR_ | 园豆:2058 (老鸟四级) | 2011-09-06 00:18
其他回答(2)
0
artwl | 园豆:16536 (专家六级) | 2011-09-05 11:49

不是那种效果,记录还是分开的,只是将id合并

支持(0) 反对(0) 一缕秋丝 | 园豆:3 (初学一级) | 2011-09-05 11:56

不是那种效果,记录还是分开的,只是将id合并

1      aa          123

        bb          123

2      aaa        123     不是这种 1  aa,bb

        bbb       123                    2  aaa,bbb,ccc

        ccc         123

支持(0) 反对(0) 一缕秋丝 | 园豆:3 (初学一级) | 2011-09-05 11:57

@一缕秋丝:

那你第二行id为空吗,如果为空如何取出来呢,有什么意义呢

支持(0) 反对(0) artwl | 园豆:16536 (专家六级) | 2011-09-05 11:57

@天行健 自强不息:作为报表的话可以很直观的看到想要的结果

支持(0) 反对(0) 一缕秋丝 | 园豆:3 (初学一级) | 2011-09-05 14:18
0

这个要求够特别

喬喬AI | 园豆:996 (小虾三级) | 2011-09-08 11:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册