【发布时间】:2019-02-25 12:02:38
【问题描述】:
我有两个要加入的表。
情况在表1中默认值为1,那么在表2中默认值为0
Table 1 Table 2
-------- ---------
1 0
1232342 1232342
1241232 1231231
我想连接表1和表2,条件是如果表2是0,那么它将被替换为1。
SELECT T1.ID
FROM TABLE1 T1, TABLE2 T2
WHERE T1.ID = REPLACE(CASE WHEN T2 = 0 THEN 1 ELSE T2.ID END, 'X', 'E')
使用此语句,它不会返回不是 0 或 1 的其他 id
预期输出
Table 1
--------
1
1232342
【问题讨论】:
-
你的预期输出是什么?
-
您希望通过
replace()实现什么目标?显然它不会影响您发布的示例数据,那么您的意图是什么? -
在 WHERE 和 ON 子句中使用 AND/OR 而不是 case 表达式通常会更好。
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。