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

Откуда:
Сообщений: 22
Вопрос конечно глупый, но я чего то застрял:(

Например запрос:

Select * from TABLE
where CityID in (select [ID] from Citys where City='Город')

Как сделать так, чтоб если набор (select [ID] from Citys where City='Город') -пуст, то в ID возвращается 0, если не пуст, то id?
25 май 09, 18:11    [7224883]     Ответить | Цитировать Сообщить модератору
 Re: пустой select  [new]
iljy
Guest
vanchen
Вопрос конечно глупый, но я чего то застрял:(

Например запрос:

Select * from TABLE
where CityID in (select [ID] from Citys where City='Город')

Как сделать так, чтоб если набор (select [ID] from Citys where City='Город') -пуст, то в ID возвращается 0, если не пуст, то id?

сходу сгенерилось что-то вроде
;with IDS(ID)
as
(
   select [ID] from Citys where City='Город'
)
Select * from TABLE 
where CityID = case when exists(select * from IDS) then 0 else null end or  
	CityID in (select * from IDS)
25 май 09, 18:58    [7225091]     Ответить | Цитировать Сообщить модератору
 Re: пустой select  [new]
vanchen
Member

Откуда:
Сообщений: 22
В моем случае такая конструкция не совсем применима,но спасибо! ща будем разбираться.:)
25 май 09, 19:02    [7225107]     Ответить | Цитировать Сообщить модератору
 Re: пустой select  [new]
Shuriken
Member

Откуда:
Сообщений: 59
можно и так

Select * from TABLE 
where CityID in (select isnull([ID], 0) from Citys where City='Город')
25 май 09, 19:14    [7225147]     Ответить | Цитировать Сообщить модератору
 Re: пустой select  [new]
iljy
Guest
Shuriken
можно и так

Select * from TABLE 
where CityID in (select isnull([ID], 0) from Citys where City='Город')


? и что будет? isnull - применяется к каждому выбранному значению, а не к выборке в целом! и если она пустая - то пустой и останется;)
25 май 09, 19:27    [7225200]     Ответить | Цитировать Сообщить модератору
 Re: пустой select  [new]
Taffy
Member

Откуда:
Сообщений: 20498
Select [id] = ISNULL(c.[ID],0), t.* 
from [TABLE] t left outer join
       Citys c on t.CityID = c.[ID] and t.City='Город'
25 май 09, 19:55    [7225307]     Ответить | Цитировать Сообщить модератору
 Re: пустой select  [new]
vanchen
Member

Откуда:
Сообщений: 22
Ребята, пасиб большое!:) получилось:)
26 май 09, 14:10    [7228641]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить