Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с запросом.  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
Есть следующий запрос
select * from Table1
where id in (select id from Table2)
Можно ли как-нибудь исключить условие если подзапрос ничего не вернет???
24 июл 09, 09:53    [7454561]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
or not exists( select * from Table2)
24 июл 09, 09:56    [7454573]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
Андрей Ч.
Есть следующий запрос
select * from Table1
where id in (select id from Table2)
Можно ли как-нибудь исключить условие если подзапрос ничего не вернет???


select a.* from table1 a left join table2 b on a.id=b.id
24 июл 09, 10:00    [7454604]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
borin
Андрей Ч.
Есть следующий запрос
select * from Table1
where id in (select id from Table2)
Можно ли как-нибудь исключить условие если подзапрос ничего не вернет???


select a.* from table1 a left join table2 b on a.id=b.id


не, не то. пардоне муа.
24 июл 09, 10:02    [7454616]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
Гавриленко Сергей Алексеевич
or not exists( select * from Table2)


Спасибо большое!
24 июл 09, 10:04    [7454624]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
Подскажите еще пожалуйста
есть запрос
select ids, idg from Table1
where ids in (select...)

как сделать чтобы если ids is null, то в условие попадало idg???

Сообщение было отредактировано: 24 июл 09, 11:17
24 июл 09, 11:14    [7455117]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
_djХомяГ
Guest
isnull(ids,idg)
24 июл 09, 11:17    [7455138]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36801
Андрей Ч.
Подскажите еще пожалуйста
есть запрос
select ids, idg from Table1
where ids in (select...)

как сделать чтобы если ids is null, то в условие попадало idg???
where 
  (ids is not null and ids in (select...))
  or (idg is not null and idg in (select...))
24 июл 09, 11:18    [7455147]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Андрей Ч.
Подскажите еще пожалуйста
есть запрос
select ids, idg from Table1
where ids in (select...)

как сделать чтобы если ids is null, то в условие попадало idg???

Хм. OR ids IS NULL
24 июл 09, 11:18    [7455153]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
vino
Member

Откуда:
Сообщений: 1191
Андрей Ч.
select ids, idg  from Table1
where coalesce(ids,idg) in (select id from Table2)
или isnull(ids,idg)
24 июл 09, 11:19    [7455158]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
_djХомяГ
isnull(ids,idg)


Спасибо!
24 июл 09, 11:20    [7455166]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом.  [new]
vino
Member

Откуда:
Сообщений: 1191
вообще-то для больших таблиц использование подмены в условии не хорошо, личше создайте индекированный столбец, например, idw по isnull(ids,idg) а в условии используйте idw
24 июл 09, 11:22    [7455187]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить