对于Azure SQL数据库或SQL Server 2022,您可以使用string_agg而不是generate_series来执行此操作,例如
declare @v varchar(200) = 'CBA321'
select string_agg( substring(@v,s.value,1), '') within group (order by substring(@v,s.value,1))
from generate_series(1,len(@v)) s
declare @v varchar(200) = 'CBA321'
select string_agg( substring(@v,s.value,1), '') within group (order by case when substring(@v,s.value,1) < 'A' then 1 else 0 end, substring(@v,s.value,1) )
from generate_series(1,len(@v)) s
1条答案
按热度按时间dced5bon1#
对于Azure SQL数据库或SQL Server 2022,您可以使用
string_agg
而不是generate_series
来执行此操作,例如其输出
123ABC
因为在我的排序规则中,数字排在字母字符之前。如果您希望字母字符排在前面,类似于