我使用以下代码创建逗号分隔列表。
我希望列表的顺序按特定顺序排列:
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'
答案 0 :(得分:8)
使用STUFF()为您提供相同的逗号分隔结果
答案 1 :(得分:0)
我不相信你在获得标量值时可以下订单。你不应该需要它,因为你只期望一个值。
答案 2 :(得分:-1)
几乎每次在看似正确的脚本中看到“语法不正确”,或者已经从其他地方复制并粘贴时,您可能会在文本中看到无效的字符,并显示为空格。 我的建议是打开一个新窗口并手动重新键入整个查询,或者尝试猜测无效字符的清理位置。