SQL查询 - 加入?

时间:2017-12-01 14:48:09

标签: sql oracle

需要您根据以下要求构建SQL查询的帮助:

我有两张表格如下:

表A:

TASKNAME           HOSTNAME
---------------------------
12                 A1
34                 B
22                 C1
43                 D
65                 E1
93                 F

表B:

HOST              NODE
----------------------
X                 ABC
X                 ABC
Y                 BV
B                 YTW
B                 IJK
D                 WWQ
D                 UWY
N                 J1
F                 ING
F                 UPI

我需要运行SQL查询来比较这两个表,并且从表A中它必须在表B中查找具有HOST字段的HOSTNAME值,最终结果应如下所示:

TASKNAME           HOSTNAME
---------------------------
12                 A1
34                 YTW
34                 IJK
22                 C1
43                 WWQ
43                 UWY
65                 E1
93                 ING
93                 UPI

值B,D和F在这两个表之间是通用的。

1 个答案:

答案 0 :(得分:3)

您需要JOINNVL

SELECT A.TASKNAME,
       NVL(B.NODE,A.HOSTNAME) AS HOSTNAME
FROM TableA A
LEFT JOIN TableB B
   ON A.HOSTNAME = B.HOST;