2011-01-13 33 views
3

我試圖幫助一位同事遇到一個特殊問題,她僅限於MS SQL QUERY代碼。該對象是插入一個虛擬記錄(到周圍的聯合)如果沒有記錄從查詢返回。我很難從PL/SQL到MS SQL來回走動,而且我呼籲幫助(我不是特別吸引人,但我吸引人的是StackOverflow audiance)。可能僅在SQL中測試空記錄嗎?

基本上,我們需要來自目標Select ...語句的單個可測試值。

從理論上講,它這樣做:

(other records from unions) 
Union 
    Select "These" as fld1, "are" as fld2, "Dummy" as fld3, "Fields" as fld4 
    where NOT (Matching Logic) 
Union 
    Select fld1, fld2, fld3, fld4 // Regular records exist 
    From tested_table 
    Where (Matching Logic) 

強制個別僞記錄,沒有條件,工作。

有沒有辦法從Select中獲得單個可測試的結果?

不能做到這一點的代碼(不允許),但可以養活SQL

任何人?任何人? Bbeller?

+0

你的意思是:如果不存在(匹配邏輯)返回假別的retun實際 – 2011-01-13 23:20:19

+0

是的,我的意思是...我的藉口是:它已經晚了(10多個小時),我很累,我可能有缺陷,我的手套太緊,太陽在我的眼睛裏,我絆倒了一個日誌。 ;-) – Marc 2011-01-14 15:04:10

回答

2

你可以把unionswith,則包括其他工會只有當大聯合是空的,它返回一個null

; with BigUnion as 
     (
     select * 
     from table1 
     union all 
     select * 
     from table2 
     ) 
select * 
from  BigUnion 
union all 
select null 
where not exists (select * from BigUnion)