У меня есть набор данных, как показано ниже:
Id A14_Comment A15_Comment A16_Comment
1 Comment1 null null
2 Comment2 Comment3 Comment4
3 null Comment5 Comment6
4 null null Comment7
Что мне нужно сделать, это получить вывод ниже:
Id A14_Comment A15_Comment A16_Comment Code
1 Comment1 null null A14
2 Comment2 Comment3 Comment4 A14
2 Comment2 Comment3 Comment4 A15
2 Comment2 Comment3 Comment4 A16
3 null Comment5 Comment6 A15
3 null Comment5 Comment6 A16
4 null null Comment7 A16
Как видно, моя цель - добавить столбец Code
и дублировать строки, помечая код. Приведенный ниже запрос показывает, сколько раз мне нужно добавить строку с различным кодом для каждой строки, но не смог найти эффективный способ сделать все остальное.
select Id, (
select count(*)
from (values (T.A14_Comment), (T.A15_Comment), (T.A16_Comment)) as v(col)
where v.col is not null and v.col <> ''
) from #Comments as T
Любая помощь будет оценена.