Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / case во frome! Не умею! / 6 сообщений из 6, страница 1 из 1
26.04.2005, 10:35
    #33035021
Dallena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
case во frome! Не умею!
Здравствуйте!

Подскажите, пожалуйста, не работает
конструкция select ... from ... where case поле when 1 then поле2 = поле3
when 0 then полу4 = поле5
end
Sybase ASE.
Я пока не умею писать на sybase конструкции where case ....
Если кому не жалко, скиньте примерчик подобной кострукции для неумехи
:(
Заранее спасибо!
...
Рейтинг: 0 / 0
26.04.2005, 10:45
    #33035053
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
case во frome! Не умею!
Если пропустит, то только что-то подобное:

where
case поле
when 1 then поле1
when 0 then поле2
end = поле3
...
Рейтинг: 0 / 0
26.04.2005, 11:18
    #33035164
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
case во frome! Не умею!
Код: plaintext
1.
2.
3.
4.
5.
6.
select ... 
from ... 
where case when fld= 1  and поле2 = поле3 then  1 
                when fld= 0  and поле4 = поле5 then  1 
         else  0 
         end =  1 

Но сразу предупреждаю, что при отсутствии других условий выборки этот запрос будет сканировать всю таблицу. рекомендовал бы переписать эту лабуду на N запросов с UNION ALL.
...
Рейтинг: 0 / 0
26.04.2005, 12:36
    #33035481
Litus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
case во frome! Не умею!
where ((fld=1 and РПМЕ2 = РПМЕ3) or (fld=0 and РПМЕ4 = РПМЕ5))
а вообще, если fld других значений не принимает, то тогда
...
and
(РПМЕ2 = РПМЕ3 or РПМЕ4 = РПМЕ5)
and
...



Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
26.04.2005, 18:30
    #33036852
Dallena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
case во frome! Не умею!
Там к сожалению надо чтобы в there было не константа а поле1 = поле2
т.е мне как бы в кейсе надо джойн переключать по условию.
т.е типа where case when const = 1 then поле1 = поле2
when const = 2 then поле3 = поле2
end.
Так не дает.
...
Рейтинг: 0 / 0
26.04.2005, 18:56
    #33036896
Litus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
case во frome! Не умею!
есть еще такая конструкция:

where
a = isNull(nullif(f1,1),f2)
т.е.
если f1 = 1, то a = f2, а если f1 <> 1, то a = f1

а можно и
"coalesce" посмотреть команду


Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / case во frome! Не умею! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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