sql-server – 如何按字母顺序排序字符串

我是sql Server的新手,也是Stack溢出的新手.请原谅我的错误.

是否可以按字母顺序对列中的值进行排序?这是我的桌子

NAME
......
XZYVW
EBACD

我的结果应该如下所示

NAME
......
VWXYZ
ABCDE

有想法得到这个吗?

解决方法

创建用户定义的标量函数.
CREATE FUNCTION dbo.Alphaorder (@str VARCHAR(50))
returns VARCHAR(50)
  BEGIN
      DECLARE @len    INT,@cnt    INT =1,@str1   VARCHAR(50)='',@output VARCHAR(50)=''

      SELECT @len = Len(@str)
      WHILE @cnt <= @len
        BEGIN
            SELECT @str1 += Substring(@str,@cnt,1) + ','

            SET @cnt+=1
        END

      SELECT @str1 = LEFT(@str1,Len(@str1) - 1)

      SELECT @output += Sp_data
      FROM  (SELECT Split.a.value('.','VARCHAR(100)') Sp_data
             FROM   (SELECT Cast ('<M>' + Replace(@str1,','</M><M>') + '</M>' AS XML) AS Data) AS A
                    CROSS APPLY Data.nodes ('/M') AS Split(a)) A
      ORDER  BY Sp_data

      RETURN @output
  END

结果:

SELECT dbo.Alphaorder ('XZYVW') --VWXYZ

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...