如何組合table1和table2的COLUMN2?將兩列加入新列
SELECT COLUMN1, COLUMN2 FROM TABLE1
C1 C2
A 1
SELECT COLUMN1, COLUMN2 FROM TABLE2
C1 C2
A 1
B 2
C 2
C1 C2 C3
A 1 1
B 2 0
C 2 0
我想有一個第三列上COLUMN1結合兩個表鹼的列2,其具有A,B的值,C.然後,如果它在兩個表中的空值應爲0請參閱第三樣品樣本結果。
如何組合table1和table2的COLUMN2?將兩列加入新列
SELECT COLUMN1, COLUMN2 FROM TABLE1
C1 C2
A 1
SELECT COLUMN1, COLUMN2 FROM TABLE2
C1 C2
A 1
B 2
C 2
C1 C2 C3
A 1 1
B 2 0
C 2 0
我想有一個第三列上COLUMN1結合兩個表鹼的列2,其具有A,B的值,C.然後,如果它在兩個表中的空值應爲0請參閱第三樣品樣本結果。
因此,您希望根據關鍵列COLUMN1
匹配兩個表中的記錄。如果只有一個表格顯示該記錄。 COLUMN3
指示密鑰是否存在於兩個表中。
該解決方案使用FULL OUTER JOIN
,所以它會工作中是否存在T1
記錄但不T2
或T2
但不T1
。 coalesce()
函數顯示第一個非空參數。
SELECT coalesce(t1.COLUMN1, t2.COLUMN1) as COLUMN1
, coalesce(t1.COLUMN2, t2.COLUMN2) as COLUMN2
, case when t1.COLUMN1 is not null
and t2.COLUMN1 is not null then 1 else 0 end as COLUMN3
FROM TABLE1 t1
full outer join TABLE2 t2
on t1.COLUMN1 = t2.COLUMN1
假設。此查詢忽略t1.COLUMN1 = t2.COLUMN1
但t1.COLUMN2 != t2.COLUMN2
的情況。它只會在結果集中顯示t1.COLUMN2
。如果這不是您想要的結果,請**編輯您的問題**以包含更多樣本數據和完整的必需輸出。
這是有效的!謝謝 – Potatooo
這就是你必須尋找
SELECT tbl1.C1,
tbl2.C2,
[C3] =
(
SELECT CASE
WHEN tbl1.C2 Is Null OR tbl2.C2 is null
THEN 0
ELSE 1
END
)
FROM tbl1
INNER JOIN tbl2 ON tbl1.C1 = tbl2.C1;
爲了避免混亂,可以說TABLE_1有2列(C1,C2)和TABLE_2有2列(C3,C4)。我只是改名列TABLE_2 1 & 2列3 & 4.
從我從你想在結果TABLE_2的所有記錄與包含基於TABLE_1 C3列值的新列沿着你的問題明白了什麼。
的需要Table_1 right outer join Table_2
與NVL顯示0針對其值丟失在TABLE_1(B & C)
完整查詢是如下
SELECT Y.COLUMN_3, Y.COLUMN_4, NVL (X.COLUMN_2, 0)
FROM TABLE_1 X RIGHT OUTER JOIN TABLE_2 Y ON (X.COLUMN_1 = Y.COLUMN_3);
希望這回答您的查詢。請標記接受的答案,如果這能解決您的問題。
嘗試這個
select table2.c1,
table2.c2,
case when table1.c2 is null or
table2.c2 is null
then 0 else 1 end c3
from table1,table2 where table1.c1(+)=table2.c1;
請試試這個代碼...
select dbo.Table_2.C1,
dbo.Table_2.C2,
[C3] = (select Case when dbo.Table_1.C2 = dbo.Table_2.C2 then 1 else 0 end)
from dbo.Table_2
left join dbo.Table_1 on dbo.Table_1.C1 = dbo.Table_2.C1
添加(d,3)表1,和(e,4)表2,並相應地調整結果。 – jarlh
我不明白你的答案。 – Potatooo
這不是一個答案。問題不清楚,但如果你按照我的提示,它會變得更容易理解它。 – jarlh