所以我對面的一個問題來與SQL查詢(MSSQL)我一直在具有多語句的where子句,並在一個地方陳述可能或者可能不會返回一個值。如果where條件沒有滿足,我怎樣才能返回一個空值,然後返回其餘的結果?我也在使用多個CTE。SQL:where列不等於返回結果否則結果等於空白值
這是我的選擇條款:
select cte_devinfo.SerialNumber,
cte_devinfo.DeviceName,
cte_devinfo.DeviceID,
dev_CTE.concurrencies,
(cte_slots.LocationIndex +1) as 'Total Media',
cte_changer.SlotCount, cte_changer.TotalMountErrors, cte_changer.TotalMounts,
cte_mismatch.MismatchSerialNumber
from cte_devinfo, dev_CTE, cte_slots, cte_changer, cte_mismatch
這裏是我的where子句:
where cte_devinfo.DeviceID = dev_CTE.DeviceParentID
and cte_slots.LocationID = dev_CTE.DeviceParentID
and cte_changer.ChangerID = dev_CTE.DeviceParentID
and cte_mismatch.LocationID = dev_CTE.DeviceParentID
我想這樣的事情添加到我的where子句:
and cte_mismatch.MismatchSerialNumber != cte_devinfo.SerialNumber
但可能永遠不會發生這種情況下,如果沒有我怎麼能忽略的條件,就回到'因此查詢的其餘部分將RU N +
您可以將case語句添加到where子句中: – 2014-09-10 17:17:35
cte_mismatch.MismatchSerialNumber!= cte_devinfo.SerialNumber表示您是否希望所有記錄中的cte_misvinch.SerialNumber不存在於cte_mismatch.MismatchSerialNumber中是不是正確? – 2014-09-10 17:19:29
你可以做這樣的 - '和cte_mismatch.MismatchSerialNumber <> cte_devinfo.SerialNumber' – 2014-09-10 17:20:16