您的位置:首页 > 数据库

【收藏】SQL多行变一列

2017-07-26 03:56 274 查看

CREATE TABLE DEPT

(DeptNo INT IDENTITY(1, 1)NOT NULL ,
Country VARCHAR(50) ,
Location VARCHAR(50) NULL
)

SET IDENTITY_INSERT DEPT ON
INSERT DEPT( DeptNo, Country, Location )VALUES ( 1, 'User1', 'A' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 2, 'User1', 'B' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 3, 'User2', 'C' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 4, 'User2', 'D' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 5, 'User2', 'E' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 6, 'User3', 'F' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 7, 'User3', 'G' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 8, 'User3', 'H' )
INSERT DEPT( DeptNo, Country, Location )VALUES ( 9, 'User3', 'I' )
SET IDENTITY_INSERT DEPT OFF

--按某一列出结果的
SELECT B.Country ,LEFT(Location, LEN(Location) - 1) AS list
FROM ( SELECT Country ,
( SELECT Location + ',' FROM DEPT WHERE Country = A.Country ORDER BY DeptNo FOR XML PATH('')
) AS Location
FROM DEPT A GROUP BY Country
) B
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: