Sql server 如何按字母顺序对字符串排序

Sql server 如何按字母顺序对字符串排序,sql-server,sql-server-2008,sorting,Sql Server,Sql Server 2008,Sorting,我有一个表,其中包含以下数据 Item ...... xzypq abdcfe 如何对列中的字符串进行排序并获得以下结果 Item ...... pqxyz abcdef 可能是尝试下面的链接,这可能会有所帮助 使用递归CTE也可以做到这一点 SELECT 'xzypq' NAME INTO #temp UNION ALL SELECT 'abdcfe' 递归CTE 为什么要在SQL中执行此操作?您不能在应用程序代码中执行此操作吗?不能。根据要求,我需要在SQL本身中执行此操作。使用

我有一个表,其中包含以下数据

Item
......
xzypq
abdcfe
如何对列中的字符串进行排序并获得以下结果

Item
......
pqxyz
abcdef

可能是尝试下面的链接,这可能会有所帮助

使用递归CTE也可以做到这一点

SELECT 'xzypq' NAME
INTO   #temp
UNION ALL
SELECT 'abdcfe' 
递归CTE
为什么要在SQL中执行此操作?您不能在应用程序代码中执行此操作吗?不能。根据要求,我需要在SQL本身中执行此操作。使用select*from table_name order by ITEM没有内置函数来执行此操作。您需要编写自己的函数。您可以参考此内容了解一种可能的实现方式:这是排序,而不是排序@praveen_Programmer请在此处添加答案的主要部分,以防稍后链接失效。谢谢@shree.par18我已经添加了它,我希望这很好:
SELECT 'xzypq' NAME
INTO   #temp
UNION ALL
SELECT 'abdcfe' 
;WITH cte
     AS (SELECT Cast(NAME AS VARCHAR(50)) AS st,NAME AS name1,1 AS rn
         FROM   #temp
         UNION ALL
         SELECT Cast(Substring(NAME, rn, 1) AS VARCHAR(50)),name1,rn + 1
         FROM   cte a
                JOIN #temp b
                  ON a.name1 = b.NAME
                     AND rn < Len(a.name1) + 1)
SELECT DISTINCT (SELECT '' + st
                 FROM   cte b
                 WHERE  a.name1 = b.name1
                        AND rn <> 1
                 ORDER  BY st
                 FOR XML PATH ('')) AS Ordered_String
FROM   cte a
WHERE  rn <> 1 
Ordered_String
--------------
abcdef
pqxyz