gpt4 book ai didi

sql - 如何使用 string_agg 对转换后的字段进行排序

转载 作者:行者123 更新时间:2023-11-29 12:40:39 25 4
gpt4 key购买 nike

如何对转换后的字段进行排序。有类似的问题,但是我不知道为什么它对我不起作用

-- 'number' 字段是一个整数

string_agg(distinct cast(number as varchar(4)) , ', ')

然而结果以非常奇怪的随机顺序返回

Results
12,11,10,1,29

我只是想让它正常排序 1,10,11,12,29

我根据可用的帖子尝试了此代码,但它没有工作并收到以下错误

string_agg(
distinct cast(number as varchar(4)),', ' order by number)
as SPJ

--ERROR: in an aggregate with distinct order by expressions must appear in argument list

所以也试过了,不是我想要的答案

string_agg(
distinct cast(number as varchar(4)) , ', ' order by
cast(number as varchar(4))) as SPJ
results
10,11,8,9

我做错了什么?

最佳答案

由于类型的原因,这一切都很复杂——字符串的排序方式与数字不同。因此,您可以改用数组来执行此操作:

with t as (
select num
from (values (1), (10), (11), (12), (29), (2)) v(num)
)
select array_to_string(array_agg(distinct num order by num), ', ')
from t ;

关于sql - 如何使用 string_agg 对转换后的字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52150351/

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