【发布时间】:2020-04-09 15:02:25
【问题描述】:
使用甲骨文。我有一个看起来像这样的表:
COLUMN1 COLUMN2
1 A1 B1
2 A2 B2
3 B3
4 A3
5 B4
6 B5
7 A4 B6
我使用 COLUMN1 作为主键来映射到另一个表。但是,COLUMN1 的某些行是空的,在这种情况下,建议我使用 COLUMN2 值作为主键(如第 5 行和第 6 行)。
1) 是否可以用 CASE 编写条件 INNER JOIN 语句?类似的东西
CASE WHEN
COLUMN1 IS NULL
THEN INNER JOIN ...... ON column1 = ....
ELSE
INNER JOIN ...... ON column2 = ....
END (???)
2) 我的朋友向我建议的另一个选项是创建一个新列,其行值主要来自 COLUMN1,如果 COLUMN1 对于该行为空,则其次来自 COLUMN2。 我将如何使用 NVL 和 CASE 执行此操作?所需的结果如下,NEW_COLUMN 将是我的映射主键:
NEW_COLUMN
1 A1
2 A2
3 B3
4 A3
5 B4
6 B5
7 A4
【问题讨论】: