gpt4 book ai didi

sql-server - T-SQL 整数数组排序

转载 作者:行者123 更新时间:2023-12-03 11:24:36 26 4
gpt4 key购买 nike

假设我在 SQL 中声明一个整数列表,如下所示。

DECLARE integerlist varchar(max) = '45, 3, 23, 100'

我如何进行有效的查询以输出如下(其中数字按升序排序)

integerlist = '3, 23, 45, 100'

最佳答案

我建议简单地通过构造此列表的 sql 查询来转换列表,并使用所需的 order by 执行此查询,然后重建字符串!

DECLARE @list varchar(max) = '45, 3, 23, 100', @sql nvarchar(max)
DECLARE @A AS TABLE (A int)
set @sql='SELECT ' + REPLACE(@list, ',', ' A UNION ALL SELECT ') + ' A ORDER BY A'
INSERT into @A EXECUTE sp_executesql @sql
SET @list=null
SELECT @list = COALESCE(@list + ', ', '') + cast(A as varchar) FROM @A
SELECT @list

演示:http://sqlfiddle.com/#!3/9eecb7db59d16c80417c72d1/4892

更新:使用 UNION ALL 代替 UNION 可以将大量数据的优化提升约 3 倍

关于sql-server - T-SQL 整数数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34802668/

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