現在有表A和表B ,表A和表B有關聯,如果表B中有資料,那么表A中的資料就不顯示。如果表B中沒有資料表A的資料就顯示。怎么做?跪求大神幫忙。
uj5u.com熱心網友回復:
SELECT *
FROM a
WHERE NOT EXISTS (SELECT *
FROM b
WHERE b.a_id = a.id)
uj5u.com熱心網友回復:
如果B表空的時候就沒有資料了。怎么辦啊?uj5u.com熱心網友回復:
select * from aleft join b
on b.id=a.id
where b.id is null
uj5u.com熱心網友回復:
a表和b表結構完全一樣嗎,一樣的話:SELECT * FROM a
WHERE NOT EXISTS (SELECT 1 FROM b WHERE b.a_id = a.id) /*去掉b表的a表資料*/
union all
select * from b /*b表資料*/
/*或使用以下陳述句:假設要顯示的資料欄位名為:sj,下面的decode陳述句可以實作*/
SELECT a.id,decode(b.sj,'',a.sj,b.sj) 資料 FROM a,b where a.id=b.id(+)
但是建議,如果a,b資料一樣,只是為了消除重復的話可以用distinct
uj5u.com熱心網友回復:
full join + nvl 配合使用。現在不方便敲陳述句,先自己試下轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/94853.html
標籤:開發
