此代码无效
select Distinct(country) + ' ' + city AS [COUNTRY] from cte_task where country_code Between 92 AND 93
此查询无法正常运行。我希望该国家/地区名称应该出现一次,所有属于该国家/地区的城市应该出现在国家/地区名称后面的列表中例如巴基斯坦所有城市的国名巴基斯坦应该出现在一个专栏中。
答案 0 :(得分:0)
您可以使用FOR XML PATH处理此问题。
select distinct tsk2.country
, substring(
(
Select ', ' + tsk1.city AS [text()]
From cte_task tsk1
Where tsk1.country = tsk2.country
ORDER BY tsk1.city
For XML PATH ('')
), 2, 1000) [city]
from cte_task tsk2
where country_code Between 92 AND 93
您使用CTE的事实并不是真正相关的 - 它与CTE的工作方式与表格相同。
这是一个演示此查询的SQL小提琴:http://sqlfiddle.com/#!6/9b8a02/19