如何选择用逗号分隔所有值的列a,列b,列c,用逗号分隔所有值的列d,选择查询的e列?

时间:2019-06-12 04:51:50

标签: sql sql-server

我正在将数据库从Oracle迁移到Microsoft SQL Server。

wm_concat()在SQL Server中不起作用,因为我使用了

DECLARE @Names VARCHAR(8000) 
SELECT @Names = COALESCE(@Names + ', ', '') + alca_kiosk_machines.kiosk_machine_name 
FROM alca_kiosk_machines;

PRINT @Names

但是如何在select (name, id, coalesce(machineNames))

中选择另外两列

2 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server 2017或更高版本,则不能使用STRING_AGG函数:

SELECT STRING_AGG(kiosk_machine_name)
FROM alca_kiosk_machines

答案 1 :(得分:0)

尝试一下:

DECLARE @Names VARCHAR(8000) 

SELECT @Names = STUFF
(
    (
        SELECT ',' + kiosk_machine_name
        FROM alca_kiosk_machines
        FOR XML PATH(''), TYPE
    ).value('.', 'NVARCHAR(MAX)')
    ,1
    ,1
    ,''
)


PRINT @Names