Итак, скажем, у меня есть строка, подобная этой
"один, два, три, четыре",
Мне нужно добавить "" для каждого слова между кавычками, так что в конце концов я должен получить обратно одну строку, как это
"один", "два", "третий", "четыре",
Я знаю, что могу разбить всю строку с помощью функции split в sql, но мой реальный вопрос заключается в том, как добавить эти кавычки. Я ценю помощь всех
Вы можете использовать replace()
и конкатенацию строк. В стандартном SQL это выглядит так:
select '''' || replace(str, ',', ''',''') || ''''
MySQL и SQL Server используют разные методы для конкатенации строк, поэтому это обычно записывается как:
select concat('''', replace(str, ',', ''','''), '''')
или же
select '''' + replace(str, ',', ''',''') + ''''
Двойная цитата, когда вы их используете.
Несколько столбцов:
SELECT '''one''', '''two''', '''3''', '''four'''
Одиночная строка
SELECT '''one'', ''two'', ''3'', ''four'''
Вы можете использовать комбинацию 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,',')
Результат: