Как выбрать столбец a, столбец b, столбец c с разделенными запятой всеми значениями, столбец d с разделенными запятыми всеми значениями, столбец e select query? - PullRequest
1 голос
/ 12 июня 2019

Я перемещаю базу данных из 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

но как выбрать еще с двумя столбцами, например, (name, id, coalesce(machineNames))

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Если вы используете SQL Server 2017 или новее, чем вы можете использовать STRING_AGG функцию:

SELECT STRING_AGG(kiosk_machine_name)
FROM alca_kiosk_machines
0 голосов
/ 12 июня 2019

Попробуйте это:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...