是否可以在Oracle SQL的JOIN ON语句中使用case语句?
我试过:
SELECT * from table_a JOIN table_b
ON table_a.id = table_b.table_a_fk_id
AND CASE WHEN table_a.field_1 is not null
THEN table_a.field_1 = table_b.field_1
ELSE
1=1
END;
但我得到了错误:
ORA-00905:第4行缺少关键字at = sign
请帮帮我谢谢.
1条答案
按热度按时间eeq64g8w1#
虽然在连接中可以使用case表达式,但在这里实际上并不需要,可以使用布尔逻辑。
假设您希望在field_1可用时同时使用table_a_fk_id和field_1,但在field_1为null时仍仅通过table_a_fk_id进行连接。
顺便说一句,“case语句”实际上是pl/sql用于分支的一部分。语法是相似的,但是你可以用case语句做的事情与case表达式做的事情有很大的不同。