Всем привет. Необходима ваша помощь. Есть таблица adress, в ней есть колонки id, type, t_adress ключевое поле id. Необходимо выбрать из данной таблицы все адреса с типом 1 и если адрес с типом 1 пустой взять адрес с типом 2.
id type t_adress
1 1 moskow
1 2 null or chr(1)
2 1 null or chr(1)
2 2 london
3 1 new york
3 2 new york
Примечание:
Всем привет после многочисленных проб пришел к двум таким скриптам:
select t.t_partyid, t_type, t_adress
from ADRESS t
where t_type = (select min(t_type)
from ADRESS t2
where (t2.t_partyid = t.t_partyid)
and (t2.t_adress != chr(1)) and (t2.t_adress is not null))
и
select t_partyid, t_type, t_adress
from (select t1.t_partyid,
t1.t_type,
t1.t_adress,
ROW_NUMBER() OVER(partition by t1.t_partyid ORDER BY t1.t_type) rn
from adress t1
where t1.t_adress != chr(1) ORDER BY t1.t_partyid)
where rn = 1
order by t_partyid, t_type
План запроса у скриптов одинаков, производительность соответственно тоже.
Надеюсь сами скрипты несколько детализируют мой вопрос.
Спасибо ja-ja-hey-ho, как единственному человеку попытавшемуся ответить на мой вопрос.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.