-2
此代碼不能正常工作數據訪問通過CTE
select Distinct(country) + ' ' + city AS [COUNTRY] from cte_task where country_code Between 92 AND 93
此查詢工作不正常。我希望該國名應出現一次,屬於該國的所有城市都應出現在國名後的列表中。例如國名巴基斯坦所有城市都應該出現在一列。
此代碼不能正常工作數據訪問通過CTE
select Distinct(country) + ' ' + city AS [COUNTRY] from cte_task where country_code Between 92 AND 93
此查詢工作不正常。我希望該國名應出現一次,屬於該國的所有城市都應出現在國名後的列表中。例如國名巴基斯坦所有城市都應該出現在一列。
您可以使用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
爲什麼MySQL的標籤? –
你可以添加cte_task的sql代碼,或者向我們展示一下這些數據看起來像什麼的樣本? – WJS
'DISTINCT'不是一個功能!它是'SELECT DISTINCT'的一部分,適用於整個選定的行。寫'SELECT DISTINCT國家...',而不是,以避免混淆! – jarlh