Добавление символа в строку в sql - PullRequest
0 голосов
/ 13 сентября 2018

Допустим, у меня есть такая строка

'один, два, 3, четыре'

Мне нужно добавить " '"для каждого слова между кавычками, поэтому в конце мне нужно получить обратно одну строку вроде этой

'' one ',' two ',' 3 ',' four '

Я знаю, что могу разделить всю строку с помощью функции split в sql , но мой реальный вопрос заключается в том, как я могу добавить эти кавычки.Я ценю помощь всех

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Вы можете использовать replace() и конкатенацию строк.В стандартном SQL это выглядит так:

select '''' || replace(str, ',', ''',''') || ''''

MySQL и SQL Server используют разные методы для конкатенации строк, поэтому обычно это записывается как:

select concat('''', replace(str, ',', ''','''), '''')

или

select '''' + replace(str, ',', ''',''') + ''''
0 голосов
/ 13 сентября 2018

Вы можете использовать комбинацию quotename, string_agg (начиная с SQL Server 2017) и string_split (из SQL Server 2016):

declare @string nvarchar(max)=' one,two,3,four'

select '''' + string_agg(quotename(trim(value), ''''), ',') as result
from string_split(@string,',')

Результат:

enter image description here

0 голосов
/ 13 сентября 2018

Удвойте кавычку при их использовании.

Несколько столбцов:

SELECT '''one''', '''two''', '''3''' , '''four'''

Одна строка

SELECT '''one'', ''two'', ''3'', ''four'''

...