Извлечение данных таблицы с использованием разделения значений столбцов - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть данные таблицы как

col1    col2    col3   col4
11       12     xx yy    20
22       13     qq aa    21

мой TDD требует использования TSQL как

col1     col2    col3    col4
11       12       xx      20
11       12       yy      20
22       13       qq      21
22       13       aa      21

в основном, col3 имеет значения с пробелом, необходимо создать строки для каждого значения, разделенного пробелом.

спасибо Правь

1 Ответ

2 голосов
/ 10 февраля 2011

Посмотрите на что-то вроде этого

DECLARE @Table TABLE(
        col1 INT,
        col2 INT,
        col3 VARCHAR(50),
        col4 INT
)

INSERT INTO @Table SELECT  11,12,'xx yy',20  
INSERT INTO @Table SELECT  22,13,'qq aa',21

;WITH Vals AS (
    SELECT  *,
            CAST('<d>' + REPLACE(col3, ' ', '</d><d>') + '</d>' AS XML) XMLCol
    FROM    @Table
)
SELECT  Vals.*,
        T.split.value('.', 'VARCHAR(MAX)') SplitValue
FROM    Vals
CROSS APPLY
        XMLCol.nodes('/d') T(split)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...