我正在尝试“扭曲”执行SQL连接,如下所示:
SELECT *
FROM a
JOIN b ON /* a.type == 'any' ? b.id IS NULL : b.id = a.id */
其中注释是用类C语法编写的。如何在SQL中表达我想要的内容? (最好是ANSI,但特定于Oracle数据库也很好。)
答案 0 :(得分:3)
SELECT *
FROM a
JOIN b ON (a.type = 'any' AND b.id IS NULL)
OR (a.type <> 'any' AND b.id = a.id)