[英]Concatenate multiple row into single row
SELECT
RESVID, VEHTYPE
FROM
(SELECT
dbo.T_VEH_VEHRESERVATION.RESVID,
TABLEVEHICLE.VEHTYPE, TABLEVEHICLE.VEHREGID
FROM
(SELECT
dbo.T_VEH_VEHCATEGORY.VEHBRANDNAME + N' ' + dbo.T_VEH_VEHCLASS.VEHCLASSNAME AS VEHTYPE,
dbo.T_VEH_VEHREGISTRATION.VEHREGID
FROM
dbo.T_VEH_VEHCATEGORY
WHERE
(dbo.T_VEH_VEHREGISTRATION.DELIND = 0)
) AS TABLEVEHICLE
INNER JOIN
dbo.T_VEH_VEHRESERVATION ON TABLEVEHICLE.VEHREGID = dbo.T_VEH_VEHRESERVATION.VEHREGID )
GROUP BY
dbo.T_VEH_VEHRESERVATION.RESVID
) AS TABLERESV
我想将RESVID
:33(重复行)连接成1。
这只是一个例子,当然我想要的是这个情况下的每个重复行都将得到解决。
我尝试了XML PATH功能,但根本不起作用,我不知道出了什么问题,如果有任何帮助我的代码,我会很感激,并给我解释。
我的愿望结果:
RESVID | VEHTYPE
-------------------
33 | Proton Economic, Toyota Mid-size SUV
我的观点只有一张桌子
谢谢
试试这样....
Select Distinct RESVID ,Stuff((Select ','+VEHTYPE from TabelName A where A.RESVID =B.RESVID
For Xml Path('')),1,1,'') as VEHTYPE from TabelName B
尝试使用STUFF()
SELECT RESVID ,
STUFF((
SELECT ','+ VEHTYPE
FROM TABLERESV b
WHERE a.RESVID = b.RESVID
FOR XML PATH('')
)
,1,1,'') AS VEHTYPE
FROM TABLERESV a
GROUP BY a.RESVID
尝试这个:
SELECT B.resvid, STUFF( (SELECT ',' + A.vehtype FROM TABLE_NAME A WHERE A.resvid=B.resvid FOR XML PATH('')),1,1,'') AS CSV FROM TABLE_NAME B GROUP BY B.resvid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.