[英]SQL - ORDER BY Works in Sub-query, But Fails in Full Query
在外部選擇中,您需要指定ORDER BY
以保證順序。 當前,您僅訂購派生表,而不訂購最終查詢。
SELECT @columns += ',' + QUOTENAME(Eff_Period)
FROM
(derived table) AS Raw_Data
ORDER BY Eff_Period
PRINT @columns
SELECT @columns == ',' + QUOTENAME (Eff_period)
FROM ( ... ) as Raw_Data
ORDER BY Eff_period
我認為,如果您僅需要連接文本',' + + QUOTENAME(Eff_Period)
則子查詢是不必要的。 但是,您無需子查詢就可以執行此操作。 另外, TOP 100 PERCENT
不能像其他人指出的那樣工作,在任何情況下都不需要。
SELECT @column += ',' + QUOTENAME(Eff_Period)
FROM Members_Data AS Mbrs
INNER JOIN Claims_Data AS Clms
ON Mbrs.Eff_Period = REPLACE(CONVERT(nvarchar(7), Clms.Date_of_Service, 121), '-', '')
WHERE YEAR(Clms.Date_of_Service) = 2016
GROUP BY Mbrs.Eff_Period
ORDER BY Eff_Period
另外...我必須重新輸入屏幕快照中的整個文本。 對某些人來說並不重要,但這是我們偏愛文本而不是屏幕截圖的原因之一。
是的,外面的ORDER BY是答案。
我以為ORDER BY必須使用字段名,而且由於沒有字段名,因此我不知道如何將其放在其中。 我嘗試使用序數1,但不幸的是,這僅給了我串聯列表中的最終值。
但是,似乎可以在外部SELECT中使用Eff_Period了; 也許是因為它是JOIN中的唯一名稱。
但是,這回答了我遇到的問題。 我認為可以解決以上問題的答案引起了一個問題,但我沒有發現。 我正在設法解決這個問題。
感謝所有做出回應的人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.