Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 case в where  [new]
http__
Guest
Товарищи! Может кто-нибудь объяснит смысл нижеописанной конструкции ?

where 1= case when type = 1 and rownum = 1 then 1 when type = 1 then 0 else 1 end
28 июл 10, 18:02    [9173419]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
Elic
Member

Откуда:
Сообщений: 29988
=
where /*nvl(*/type/*, 0)*/ <> 1 or rownum = 1
Rownum тут смотрится весьма "надёжно" :)
28 июл 10, 18:16    [9173487]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
http__,

так понятнее?

where 1=
(
   case
     when type = 1 and rownum = 1 then 1
     when type = 1 then 0
     else 1
   end
)
28 июл 10, 18:17    [9173494]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
http__
Guest
mcureenab,
да,спасибо.

Только что значит вот это
where  = 1
?
28 июл 10, 18:27    [9173569]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
http__
Guest
http__
mcureenab,
да,спасибо.

Только что значит вот это
where  1=
?
28 июл 10, 18:28    [9173581]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10051
http__
http__
mcureenab,
да,спасибо.

Только что значит вот это
where  1=
?


Все понятно. Только не пойму как керосин по проводам течёт .

SY.

Сообщение было отредактировано: 28 июл 10, 18:39
28 июл 10, 18:39    [9173652]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
http__
mcureenab,
да,спасибо.

Только что значит вот это
where 1 = 
?


Выражение в скобках - (CASE ... END) - возвращает 1 или 0, а WHERE нужно TRUE или FALSE.
where 1 = (1) это TRUE.
where 1 = (0) это FALSE.
28 июл 10, 18:51    [9173726]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
http__
Guest
mcureenab,

Спасибо за объяснение))) Тяжело в начале)
29 июл 10, 10:13    [9175762]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
Takurava
Member

Откуда:
Сообщений: 1776
http__
Только что значит вот это
where  1 =
?

Йода, ёпта
29 июл 10, 12:00    [9176783]     Ответить | Цитировать Сообщить модератору
 Re: case в where  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Takurava
Йода, ёпта


+ OFF TOPIC
Кстати, в C-подобных языках этот подход помогает избежать ошибок, когда вместо сравнения используется присвоение (= вместо ==). Так что, истину говорит Йода Мастер... :)
29 июл 10, 12:44    [9177230]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить