мне нужно преобразовать следующие значения из переменной:Разделенный запятыми список строки SQL
1234,1234,12345,12346,1344,4564
к этому:
'1234','1234','12345','12346','1344','4564'
с помощью функции SQL.
Я попытался:
DECLARE @VAL AS VARCHAR(MAX)
SELECT @VAL = '1234,1234,12345,12346,1344,4564'
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + @VAL
SELECT @listStr AS 'List'
GO
Но я получаю:
1234,1234,12345,12346,1344,4564
'select '' '' + replace (@yourvariable, ',', '' ',' '') + '' ''' –
COALESCE возвращает первое ненулевое значение из своих аргументов. Это не связано с строковыми манипуляциями. Кроме того, НЕ используйте 'varchar (max)', он предназначен для использования в качестве BLOB, а не как удобная строка без размера –
Ugh, why? Вы собираетесь положить '@ listStr' в нечто вроде' WHERE column IN ('+ @listStr +') '? Вы действительно должны смотреть в табличные параметры или, если вы находитесь в <2008, разделяете строки. –