Как разбить столбец на несколько значений - PullRequest
1 голос
/ 28 декабря 2011

table1

Value (Always 3 Digit)

100x200x300
200x400x500
...
...

Я хочу сделать 3 столбца из столбца значений

Ожидаемый результат

val1 val2 val3

100 200 300
200 400 500
...
...

Нужна помощь по запросу

Ответы [ 2 ]

3 голосов
/ 28 декабря 2011

Используется PARSENAME вместо SUBSTRING.

SELECT
   PARSENAME(Value2, 3) AS val1,
   PARSENAME(Value2, 2) AS val2,
   PARSENAME(Value2, 1) AS val3
FROM
    (
    SELECT
        REPLACE(Value, 'x', '.') AS Value2
    FROM
        MyTable
    ) T;

Этот код

  • допускает различные значения длины компонента
  • предполагает xвсегда разделитель
  • предполагает всегда 3 компонента
2 голосов
/ 28 декабря 2011
SELECT SUBSTRING([VALUE],1,3) AS val1,
       SUBSTRING([VALUE],5,3) AS val2, 
       SUBSTRING([VALUE],9,3) AS val3
  FROM TABLE1
...