SqlServer-STUFF拼接列表

創建OrderInfo 表

CREATE TABLE OrderInfo 
(
    OrderGuid uniqueidentifier not null,
    LoginId varchar(50) not null,
)

創建OrderProduct表

CREATE TABLE OrderProduct
(
    ProductGuid uniqueidentifier not null,
    ProductName varchar(100) not null,
    OrderGuid uniqueidentifier not null,
)

向OrderInfo 表插入數據

insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678975078')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678975078')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678971111')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678971111')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678971111')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678971111')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678971111')
insert into OrderInfo(OrderGuid,LoginId)values(NEWID(),'15678973333')

select * from OrderInfo

向OrderProduct表插入數據

insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'黑人牙膏','6646A662-6570-4A0D-B359-1B45D8441BA6')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'玻尿酸補水噴霧','6646A662-6570-4A0D-B359-1B45D8441BA6')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'白色帆布鞋','4B800C54-FDD8-496C-8414-C7122F708AA9')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'手鐲','918DAD4C-71BA-4DBB-BD1D-09B5A75320F8')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'信紙','918DAD4C-71BA-4DBB-BD1D-09B5A75320F8')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'米老鼠','918DAD4C-71BA-4DBB-BD1D-09B5A75320F8')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'礦泉水','F8E1499F-6EEC-4AE6-8E77-0166D95116E1')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'眼鏡','F8E1499F-6EEC-4AE6-8E77-0166D95116E1')
insert into OrderProduct(ProductGuid,ProductName,OrderGuid)values(NEWID(),'機櫃','4B800C54-FDD8-496C-8414-C7122F708AA9')

select * from OrderProduct

同一張表數據的拼接

SELECT  p2.LoginId, OrderGuid = STUFF((
            SELECT ',' + convert(varchar(36),OrderGuid)
            FROM OrderInfo AS p1
            WHERE p1.LoginId = p2.LoginId
            FOR XML PATH('')
            ), 1, 1, '') FROM OrderInfo AS p2
GROUP BY p2.LoginId

SELECT  p2.OrderGuid, ProductName = STUFF((
            SELECT ',' + ProductName
            FROM OrderProduct AS p1
            WHERE p1.OrderGuid = p2.OrderGuid
            FOR XML PATH('')
            ), 1, 1, '') FROM OrderProduct AS p2
GROUP BY p2.OrderGuid

不同表數據的拼接

SELECT  p2.OrderGuid,p2.LoginId, ProductName = STUFF((
            SELECT ',' + ProductName
            FROM OrderProduct AS p1
            WHERE p1.OrderGuid = p2.OrderGuid
            FOR XML PATH('')
            ), 1, 1, '') FROM OrderInfo AS p2
GROUP BY p2.OrderGuid,p2.LoginId

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章