我有兩個表,T1
和T2
具有相同的一組列。我需要發出一個查詢,它將返回來自任何一個表的列的值,而不是null。如果兩列均爲null,則返回null作爲該列的值。從Oracle中的兩個表中返回非空值
列爲c1
,c2
,c3,cond1。
我發出以下查詢。問題是如果一個子查詢失敗,整個查詢失敗。有人請幫助我。可能還有另一種簡單的方法。
SELECT NVL(T1.c1, T2.c1) c1,NVL(T1.c2, T2.c2) c2,NVL(T1.c3, T2.c3) c3
FROM (SELECT c1,c2,c3
FROM T1
WHERE cond1 = 'T10') T1
,(SELECT c1,c2,c3
FROM T2
WHERE cond1 = 'T200') T2 ;
你過於簡化你的榜樣?或者你從T1中取出一行,如果它爲空,則從T2取出一行?或者你錯過了表格之間的連接條件? – Captain 2014-11-06 11:42:36
這是一個真實的例子。如果可用,我只想獲得T1表的價值。否則返回T2表中的值。如果這兩個子查詢都返回一行,這將起作用。但是,如果一個子查詢返回0行,那麼整個查詢將不返回任何內容。但需要從其他子查詢中返回值。可能是我沒有按照正確的方式去做。 – 2014-11-06 11:55:05