sql多列合并为一列多行 5

如一个表有列id(1,2,3),a,b,c,d查出来显示的是ids1abcd2abcd... 如一个表有列id(1,2,3),a,b,c,d
查出来显示的是id s
1 a
b
c
d

2 a
b
c
d
展开
 我来答
wangzhiqing999
2011-09-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3326万
展开全部
CREATE TABLE #t (
id int,
a char(2),
b char(2),
c char(2),
d char(2)
)
go

INSERT INTO #t
SELECT 1, 'a1', 'b1', 'c1', 'd1' UNION ALL
SELECT 2, 'a2', 'b2', 'c2', 'd2' UNION ALL
SELECT 3, 'a3', 'b3', 'c3', 'd3'
GO

1> SELECT
2> CASE
3> WHEN ROW_NUMBER() OVER(partition by id order by [all]) = 1 THEN cast(id as varchar(2))
4> ELSE '' END AS id,
5> [all]
6> FROM
7> (
8> SELECT id, a AS [all] FROM #t
9> UNION ALL
10> SELECT id, b AS [all] FROM #t
11> UNION ALL
12> SELECT id, c AS [all] FROM #t
13> UNION ALL
14> SELECT id, d AS [all] FROM #t
15> ) t
16> GO
id all
-- ---
1 a1
b1
c1
d1
2 a2
b2
c2
d2
3 a3
b3
c3
d3

(12 行受影响)
ayanami365
2011-09-01 · TA获得超过937个赞
知道小有建树答主
回答量:1777
采纳率:0%
帮助的人:728万
展开全部
行专列
语句比较麻烦
用的是decode + union
追问
有具体的sql语句吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式