Как выбрать подмножество столбцов на основе приоритета столбца - PullRequest
0 голосов
/ 25 июня 2019

Выбор из одного приложения и вставка в другое.Первая система имеет 9 полей телефонных номеров, вторая - только 4. Я не хочу отображать статические 4 из старых в новые.Для каждой записи данных я хотел бы выбрать в зависимости от приоритета и от того, заполнены они или нет.

Похоже, это упражнение по поиску X-го ненулевого столбца.

Я уверен, что это должен быть дубликат другого вопроса, но я пока не нашел этот вопрос...

Для первого, не нулевого, COALESCE, конечно, прекрасно работает:

TargetColumn1 = coalesce(SourcePriorityColumn1, SourcePrioritycolumn2, SourcePriorityColumn3,...,SourcePriorityColumn9)

Для второго приоритета ("второй ненулевой столбец") становится более сложным:

TargetColumn2 =
SELECT
CASE
when Col1 is not null then coalesce(Col2, Col3, Col4, ... , col9)
else when Col2 is not null then coalesce(col3, col4, col5, ... , col9)
else when Col3 is not null then coalesce(col4, col5, col6, ... , col9)
...
else Col9

У меня есть идея, где вообще начать искать 3-й или 4-й ненулевой столбец.

Обратите внимание, что я ограничен тем, что можно сделать в операторе SELECT, - без процедурного языка.Тем не менее, я могу создавать временные таблицы при необходимости.

Заранее спасибо!

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