Таблица расширения SQL Server по столбцам - PullRequest
0 голосов
/ 11 сентября 2018

У меня была такая таблица:

Name      Sex    A      B      C

Alice     F      1      2      -
Bob       M      -      3      4
David     M      -      -      5

Мне нужно расширить таблицу в соответствии с ключами столбца от 'A' до 'C' (игнорируя нулевое значение) следующим образом:

Name      Sex   Type   Value

Alice     F      A      1
Alice     F      B      2
Bob       M      B      3
Bob       M      C      4
David     M      C      5

Как я могу построить «хранимую процедуру» для выполнения этого

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете использовать apply:

select t.name, t.sex, v.type, v.value
from t cross apply
     (values ('A', t.A), ('B', t.B), ('C', t.C)) v(type, value)
where v.value is not null;

Если вам нужно сделать это «автоматически», создайте представление:

create view v_t as
    select t.name, t.sex, v.type, v.value
    from t cross apply
         (values ('A', t.A), ('B', t.B), ('C', t.C)) v(type, value)
    where v.value is not null;

Хранимая процедура не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...