Я применил «заимствованное» решение для разделения строки с разделителями на строки (я работаю в MSSQL 2008 R2), но это решение было специфичным для CTE/рекурсивных запросов. Это отлично работает, но только преобразует один ряд данных. Как мне настроить это, чтобы вернуть все строки в моей таблице (или, еще лучше, включить предложение where)?CTE/рекурсивный запрос для разделения строк с разделителями, возвращающих только одну строку?
Я испугался изучения этого в течение двух дней, и поскольку я не слишком опытен с CTE/рекурсивными запросами или XML ... любой опыт будет приветствоваться! Благодаря!!
DECLARE @RowData varchar(2000)
DECLARE @SplitOn varchar(1)
DECLARE @ObjectID int
SELECT
@ObjectID = ObjectID, @RowData = ObjectName, @SplitOn = ';' from Objects
declare @xml as xml
SET @XML = '<t><r>' + Replace(@RowData , @spliton, '</r><r>') + '</r></t>'
select @objectid as objectid, rtrim(ltrim(t.r.value('.', 'VARCHAR(8000)'))) as splitvalue
from @xml.nodes('/t/r') as t(r)
Каковы ваши данные в таблице? –