Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA, case внутри where / 6 сообщений из 6, страница 1 из 1
06.10.2009, 11:33
    #36234577
Vovaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA, case внутри where
нужна конструкция вида
Код: plaintext
1.
2.
3.
4.
where 
    region in (case 
                 when @wsm_id =  1  then ('99', '77', '90', '50')  
                 when @wsm_id =  2  then ('47', '78') 
              end)

она не работает, но
Код: plaintext
1.
2.
3.
4.
where 
    region in (case 
                 when @wsm_id =  1  then ('99')  
                 when @wsm_id =  2  then ('78') 
              end)

работает
Можно без динамического SQL добиться нужного условия?
...
Рейтинг: 0 / 0
06.10.2009, 11:49
    #36234616
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA, case внутри where
Vovaka,
нyжно иметь в запросе набор данных (таблица,процедура,view) соответствия region и @wsm_id
Тогда все просто.
...
Рейтинг: 0 / 0
06.10.2009, 11:56
    #36234642
Vovaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA, case внутри where
Тогда дополню вопрос: не используя динамический SQL и не используя вспомогательные структуры. Только манипулируя условием.
...
Рейтинг: 0 / 0
06.10.2009, 12:19
    #36234715
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA, case внутри where
может так прокакатит. но я не проверял!

Код: plaintext
1.
2.
3.
where @wsm_id =  case 
                 when region in ('99', '77', '90', '50') then  1 
                 when region in ('47', '78') then  2  
              end)
...
Рейтинг: 0 / 0
06.10.2009, 12:27
    #36234739
Vovaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA, case внутри where
cherrex_Denможет так прокакатит. но я не проверял!

Код: plaintext
1.
2.
3.
where @wsm_id =  case 
                 when region in ('99', '77', '90', '50') then  1 
                 when region in ('47', '78') then  2  
              end)



Спасибо! Все гениальное - просто :)
...
Рейтинг: 0 / 0
06.10.2009, 13:11
    #36234865
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA, case внутри where
Vovaka,

Я то думал что у Вас when-овв принципе может быть куча и проблема их динамически их формировать, т.е. хочется уйти от динамического формирование условия в SQL.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA, case внутри where / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]