[英]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.