powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA, case внутри where
6 сообщений из 6, страница 1 из 1
ASA, case внутри where
    #36234577
Фотография Vovaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужна конструкция вида
Код: 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
ASA, case внутри where
    #36234616
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vovaka,
нyжно иметь в запросе набор данных (таблица,процедура,view) соответствия region и @wsm_id
Тогда все просто.
...
Рейтинг: 0 / 0
ASA, case внутри where
    #36234642
Фотография Vovaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда дополню вопрос: не используя динамический SQL и не используя вспомогательные структуры. Только манипулируя условием.
...
Рейтинг: 0 / 0
ASA, case внутри where
    #36234715
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
ASA, case внутри where
    #36234739
Фотография Vovaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
ASA, case внутри where
    #36234865
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vovaka,

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


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