#sql #sql-server #database #sql-server-2008 #sql-server-2005
#sql #sql-сервер #База данных #sql-server-2008 #sql-server-2005
Вопрос:
UPDATE TBL SET Col1='multi rnline rntext'
Я использую приведенный выше запрос для установки col1
значения в многострочное значение.
Я хочу выбрать col1
как 3 строки.
Я хочу вывод для
Select col1 from tbl
Нравится
COL1
несколько
строка
текст
Комментарии:
1. вы хотите обновить или вставить
2. Я выполняю как вставку, так и обновление, и мой запрос заключается в том, как выбрать его в разных строках
3. Если это insert, это возможно, и я могу дать u запрос для этого, для обновления, поскольку, насколько мне известно, это невозможно для существующих строк, поскольку для этого необходимо вставить дополнительные две строки.
Ответ №1:
Чтобы разделить эту строку на элементы, мы используем метод nodes() типа данных XML. Чтобы использовать его, мы должны преобразовать эту строку в формат XML. Просто замените 'rn'
на '</X><X>'
:
WITH T AS
(
SELECT ID,
CAST('<X>' REPLACE(col1,'rn','</X><X>') '</X>' as XML) as xmldata
FROM TBL
)
SELECT T.ID,
a.c.value('data(.)', 'VARCHAR(100)') as col1
FROM T
CROSS APPLY xmldata.nodes('X') as a(c)
Ответ №2:
Попробуйте это для вставки
insert into table
Select a.na
from table
cross apply(Select 'multi' na union Select 'Line' union Select 'Text')a