sql - Return different value if certain condition is true -
i have query:
select last_ddns_update_time lu_camera cam cam.unit_id='90016980' , cam.device_id='2051' , cam.device_id not in ( select device_id lu_camera_ext unit_id=cam.unit_id , device_id=cam.device_id) it returns 1 variable (from cell). possible homecoming 2 variables (one cell , 1 set within query itself)?
i want if part true:
(select device_id lu_camera_ext unit_id=cam.unit_id , device_id=cam.device_id) then homecoming value else homecoming value b (select last_ddns_update_time, new_value). i'm relatively new sql, i'm sorry if mega scrub question.
something kind of like:
select last_ddns_update_time, new_value lu_camera cam cam.unit_id='90016980' , cam.device_id='2051' , cam.device_id , if (select device_id lu_camera_ext unit_id=cam.unit_id , device_id=cam.device_id) set new_value='a' else set new_value='b'
you cannot grab info in select tables in clause. not have access them. however, changing query little bit, can asking. instead of having sub-select in clause, let's move select part of query (what?!). that's right, can have sub-select in select.
since checking if cam.device_id in sub-select, going assume want 'new_value' if id in select, otherwise want last_ddns_update_time. looks this:
select isnull((select new_value lu_camera_ext unit_id=cam.unit_id , device_id=cam.device_id , cam.device_id = device_id) , last_ddns_update_time) lu_camera cam cam.unit_id='90016980' , cam.device_id='2051' so happening is, looking new value lu_camera_ext if cam.device_id in table. if device_id not returned sub-select, instead null returned. isnull evaluates returned value. if null back, instead last_ddns_update_time returned per usual.
sql sql-server-2008
No comments:
Post a Comment