我正在使用以下代码创建逗号分隔列表。

我想要按特定顺序排列列表:

USE AdventureWorks
GO
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + Name
FROM Production.Product
SELECT @listStr
GO

当我尝试像
USE AdventureWorks
GO
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + Name
FROM Production.Product
ORDER BY sortOrder
SELECT @listStr
GO

它显示错误incorrect syntax near ' ORDER'

最佳答案

使用ojita()给您相同的逗号分隔结果

USE AdventureWorks
GO
DECLARE @listStr VARCHAR(MAX)

SELECT @listStr = STUFF((SELECT  ',' + Name
            FROM Production.Product
            ORDER BY sortOrder
       FOR XML PATH('')), 1, 1, '')

SELECT @listStr
GO

关于sql - 使用SELECT子句的逗号分隔列表中的ORDER BY,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17834842/

10-09 09:50