如何在stuff中使用order by并排除特定值?这是我的问题。
SELECT ID, STUFF((
SELECT ';' + t1.CTY
FROM country_tbl t1
WHERE t2.ID = t1.ID FOR XML PATH('')),1,1,'') AS aggregation
FROM master_tbl t2
WHERE t2.ID IN ('123456','123457')
GROUP BY ID;
ORDER BY T2.ID
t1
ID Country
123456 England
123457 Canada
t2
ID CTY
123456 England
123456 Japan
123456 France
123456 Canada
123457 England
123457 Japan
123457 France
Result
ID CTY
123456 Canada;France;Japan Except England (CTY Sorted A-Z)
123457 England;France;Japan No Exception (CTY Sorted A-Z)
2条答案
按热度按时间ktecyv1j1#
你可以使用
ORDER BY
以及WHERE
子查询中的子句。像这样:我也换了衣服
GROUP BY
在外部查询中SELECT DISTINCT
以提高性能。jhkqcmku2#
如果我没听错的话,你想把t2中的城市列出来,除了t1中那些ID相同的城市,按升序排列。如果是这样的话,那你就很接近了,但还不是很接近。
首先,创建并填充示例表(请在以后的问题中保存此步骤):
查询:
结果: