需求如下:有M表,N表2个表 现在需要根据一定条件去取M中的一个字段A,但是还有一个特殊的需求是当A不存在时,根据M表中的B字段去向N表中差对应的D字段可能说不明白,列举下.M表 记录1 A 01 B 00 C 02
记录2 A 空 B 00 C 02 N表 B 00 D 03这时候查C=02是的记录,希望可以用一条语句查出来的结果是 01 03.请问这条SQL应该怎么写,头疼了一下午
记录2 A 空 B 00 C 02 N表 B 00 D 03这时候查C=02是的记录,希望可以用一条语句查出来的结果是 01 03.请问这条SQL应该怎么写,头疼了一下午
from M full join N
on M.B = N.B
where C='02'
from M full join N
on M.B = N.B
where C='02'
create table M (Col1 varchaer2,Col1 varchaer2,Col1 varchaer2, )
M表 记录1 A 01 B 00 C 02
记录2 A 空 B 00 C 02 N表 B 00 D 03 select A.Col2,case when A.Col2 is null then B.Col4 end
from M A left jon N B
on A.Col2 = B.Col1
这样行不?
FROM M
WHERE NOT EXISTS(SELECT 1 FROM N WHERE M.字段A=N.字段D)
SELECT CASE WHEN NVL(M.A,'')='' THEN M.A ELSE N.D END A,M.B,M.C
FROM M
LEFT JOIN N ON M.B=N.D
WHERE M.C='02';
2 FROM M
3 LEFT JOIN N ON M.B=N.D
4 WHERE M.C='02'; A B C
---------- ---------- ----------
00 02
01 00 02
hdhai9451 的SQL写的好,我的就不贴出来了,理论上看起来差了点啊!