Вопрос по Case...

AlexNsk
Дата: 13.10.2003 14:33:43
Люди! Кто-нибудь пытался воткнуть Case в условия запроса, типа:

Select * from t1

Where (t1.c2=100) and
Case
When @Par1=1 then (t1.c1<0)
When @Par1=2 then (t1.c1>0)
When @Par1=3 then (t1.c1=0)
Возможно ли это в принципе?
Александр Степанов
Дата: 13.10.2003 14:41:51
В таком виде, конечно, не получится, но...


Select * from t1
Where (t1.c2=100) and
Case
When @Par1=1 and (t1.c1<0) then 1
When @Par1=2 and (t1.c1>0) then 1
When @Par1=3 and (t1.c1=0) then 1
ELSE 0
END=1
iSestrin
Дата: 13.10.2003 14:43:27
какнибудь так:
Select * from t1
Where (t1.c2=100) and
1=
Case
When @Par1=1 and (t1.c1<0) then 1
When @Par1=2 and (t1.c1>0) then 1
When @Par1=3 and (t1.c1=0) then 1
else 0 end
gary2
Дата: 13.10.2003 14:50:15
есть еще вариан !

Select * from (select *,
t=
Case
When @Par1=1 and (t1.c1<0) then 1
When @Par1=2 and (t1.c1>0) then 1
When @Par1=3 and (t1.c1=0) then 1
end
from t1) as tt where t=1
gary2
Дата: 13.10.2003 14:56:30
Кстати проверил два предыдущих варианта почемуть не работает
Не хочет он в Where работать с case
gary2
Дата: 13.10.2003 15:23:08
Все работает . это . что то я заглючил
AlexNsk
Дата: 13.10.2003 15:40:36
Спасибо всем за помощь. :)