2014-04-02 32 views
0

我想在if else或case表達式中創建一個select表達式,但是我無法使其工作。在if else或case sql表達式中選擇

我已經試過了如下因素

select 
(case when DateTime1 is null then select * from LogEntries where PC_TID > '2014-03-26' 
else select * from LogEntries where DateTime1 > '2014-03-26' 
end) as timeSearchParam 
from LogEntries 

if DateTime1 is null 
begin 
select * from LogEntries where PC_TID > '2014-03-26' 
end 
else 
begin 
select * from LogEntries where DateTime1 > '2014-03-26' 
end 

他們沒有工作,我只是想不通,是什麼問題。

+0

您正在使用哪個數據庫管理系統? –

+0

什麼是錯誤信息? –

回答

2

的方法之一是

select * from LogEntries where PC_TID > '2014-03-26' and DateTime1 is null 
union all 
select * from LogEntries where DateTime1 > '2014-03-26' and DateTime1 is not null 
order by coalesce(DateTime1 , PC_TID) 

select * from LogEntries 
where 
(PC_TID > '2014-03-26' and DateTime1 is null) 
or 
(DateTime1 > '2014-03-26' and DateTime1 is not null) 
order by coalesce(DateTime1 , PC_TID) 
+0

我需要通過DateTime1對數據進行排序,如果這是空的,我必須使用PC_TID。你的建議將會返回兩者嗎? – kellelein

+0

我修改了代碼。請參考它,看看它是否工作 – Madhivanan

+0

已經嘗試過了,它似乎工作,謝謝:-) – kellelein