mam*_*esh 2 sql sql-server sql-server-2005
我有以下查询:
SELECT
'' + CONVERT(VARCHAR(MAX),c.ClientId) + ','
FROM [dbo].[tblClient] c
Run Code Online (Sandbox Code Playgroud)
这将返回17,000 +行.有没有办法让所有这些行返回1值?例如:
6A7A24CD-061C-4653-9790-882D90F81E1D,0980722E-6E96-4498-B3BB-BFB4CA60EAC6,etc etc etc.
Run Code Online (Sandbox Code Playgroud)
我试图用它作为测试参数.
这对你有用吗?
DECLARE @v VARCHAR(MAX)
SELECT @v = ''
SELECT
@v = @v + CONVERT(VARCHAR(MAX),c.ClientId) + ','
FROM [dbo].[tblClient] c
WHERE c.ClientId IS NOT NULL
SELECT @v
Run Code Online (Sandbox Code Playgroud)
注意:请注意,如果添加ORDER BY,则无法保证对其进行排序,在这种情况下使用xml路径,如Remus的回答所示
另请参见:将多行的值连接到一个已排序的列中