gpt4 book ai didi

sql - 具有不同的 Order by 子句

转载 作者:行者123 更新时间:2023-12-02 22:19:55 25 4
gpt4 key购买 nike

我在 sql server 中有一个表,其中有一些值。例如如下,

StationId
-----
3
11
4

我编写了如下查询,

select  STUFF((SELECT distinct (',' + QuoteName(c.StationId))
FROM Analytics c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')

输出如下:

[11],[3],[4]

现在我的要求是我需要输出为[3],[4],[11]。因此,当将查询重写为

select  STUFF((SELECT distinct (',' + QuoteName(c.StationId))
FROM Analytics c ORDER BY c.StationId
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')

我遇到了异常

ORDER BY items must appear in the select list if SELECT DISTINCT is specified.

请给我一些建议。

最佳答案

您可以通过删除 DISTINCT 并添加 GROUP BYORDER BY 一起使用来更改代码:

select  STUFF((SELECT (',' + QuoteName(c.StationId))
FROM Analytics c
group by c.StationId
ORDER BY c.StationId
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')

参见SQL Fiddle with Demo

关于sql - 具有不同的 Order by 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707526/

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