У меня есть SQL запрос, который упрощенным выглядит следующим образом:SQL Multiple Case Когда и Mulitple результаты
declare @Method varchar(max);
set @Method = 'phone'
select
case
when @Method = 'phone' and u.PhoneNumber is not null and u.PhoneNumberConfirmed = 1 then u.PhoneNumber
when @Method = 'email' and u.Email is not null and u.EmailConfirmed = 1 then u.Email
end,
case
when @Method = 'phone' and u.PhoneNumberSecondary is not null and u.PhoneNumberSecondaryConfirmed = 1 then u.PhoneNumberSecondary
when @Method = 'email' and u.EmailSecondary is not null and u.EmailSecondaryConfirmed = 1 then u.EmailSecondary
end
Так что отображает его в 2 колонки. Я хочу, чтобы все результаты были всего в 1 столбце. Я мог бы разделить его с союзом, как это:
...
select
case
when @Method = 'phone' and u.PhoneNumber is not null and u.PhoneNumberConfirmed = 1 then u.PhoneNumber
when @Method = 'email' and u.Email is not null and u.EmailConfirmed = 1 then u.Email
end
from
...
union
select
case
when @Method = 'phone' and u.PhoneNumberSecondary is not null and u.PhoneNumberSecondaryConfirmed = 1 then u.PhoneNumberSecondary
when @Method = 'email' and u.EmailSecondary is not null and u.EmailSecondaryConfirmed = 1 then u.EmailSecondary
end
Но проблема в том, то что это может быть, что оно не существует каких-либо строк с PhoneNumberSecondary, а затем я получаю строку NULL.
Каков наилучший способ решить эту проблему?
Добавить проверку в ИНЕКЕ второго запроса для '' PhoneNumberSecondary' или EmailSecondary'? – CompanyDroneFromSector7G
Если вы дадите весь запрос, я поставлю ответ – CompanyDroneFromSector7G