gpt4 book ai didi

sql - 如何在 SELECT 中没有列的情况下按顺序排序

转载 作者:行者123 更新时间:2023-12-04 23:46:15 25 4
gpt4 key购买 nike

我正在使用 MS-SQL,我有一个这样的表:

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

我只需要获得代码列的不同行,但我需要保持列的顺序来创建一个逗号分隔的字符串,如下所示:
    A, C, B

我已经尝试了以下代码来没有得到消息 145,级别 15 的 SQL 错误 - 如果指定了 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在子查询中通常是未定义的。而且,您将列表按顺序连接在一起的方法不能保证有效。

关于sql - 如何在 SELECT 中没有列的情况下按顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com