簡體   English   中英

如何在SELECT中沒有列的情況下排序BY

[英]How to Order BY without having Column in SELECT

我正在使用MS-SQL,我有一個這樣的表:

Count  Code
1      A
2      C
3      A
4      B
5      C
6      B

我只需要獲取Code列的Distinct Row,但我需要保持Column的順序以創建一個逗號分隔的字符串,如下所示:

    A, C, B

我已經嘗試以下代碼來獲取Msg 145的SQL錯誤,等級15 - 如果指定了SELECT DISTINCT,則ORDER BY項必須出現在選擇列表中。

SELECT @tlist = ISNULL(@tlist+', ','') + Code 
FROM (SELECT DISTINCT t.Code  
     FROM @Table t) 

但我得到了A,B,C的輸出

所以,你不希望distinct 你想要group by

select t.code
from @Table t
group by t.code
order by min(count)

您可以按select子句中未提及的列進行排序。

要將逗號分隔列表作為單個變量,請使用以下技術:

select stuff((select ', '+t.code
              from @Table t
              group by t.code
              order by min(count)
              for xml path ('')
             ), 1, 2, '')

Order by子查詢通常是不確定的。 並且,無法保證按順序將列表連接在一起的方法。

在子查詢中對它們進行排序

SELECT DISTINCT t.Code  
FROM @Table t
ORDER BY t.Code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM