Добавление символа в строку в sql

0

Итак, скажем, у меня есть строка, подобная этой

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

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

"один", "два", "третий", "четыре",

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

  • 3
    MySQL или SQL Server?
Теги:
sql-server
split

3 ответа

4
Лучший ответ

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

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

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

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

или же

select '''' + replace(str, ',', ''',''') + ''''
2

Двойная цитата, когда вы их используете.

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

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

Одиночная строка

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

1

Вы можете использовать комбинацию 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,',')

Результат:

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню