Re[3]: [SQL] Спасибо, но есть уточнение (isnull)
От: FunnyRabbit Россия  
Дата: 06.03.06 07:10
Оценка:
Здравствуйте, Darkman_VLT, Вы писали:

H>>
H>>select t1.host_id, t1.created as created_on, min( t2.created ) as created_off
H>>from t t1 left join t t2 
H>>on t2.host_id = t1.host_id 
H>>and t2.created > t1.created
H>>where 
H>>t1.event_id = 1
H>>and isnull( t2.event_id, 2 ) = 2
H>>group by
H>>t1.host_id, t1.created
H>>

D_V>>>P.S. SQL в реализации Postgres'a


D_V>А ещё более не понятна конструкция isnull( t2.event_id, 2 ) = 2


Это означает, что если t2.event_id будет NULL, то вместо него подставить 2 и сравниться с 2. Т.о. здесь приводиться t2.event_id к 2 ибо значения могут быть числовыми (0, 1, 2, ...100,...) и NULL и пожтому с NULL сравнивать не получиться. Значит надо привести NULL к числу, которое нам необходимо. В Oracle isnull имеет синоним NVL.
То что меня не убивает, делает меня умнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.