我需要运行一个查询,该查询取决于该特定查询读取的字段的值。 这是我的问题:
SELECT * FROM foo JOIN bar ON bar.ID = foo.field1
如果foo.field1
为0
,JOIN
将在foo.field2
上进行
我尝试过像
这样的东西SELECT * FRMO foo JOIN bar ON bar.ID = (SELECT field1 FROM bar WHERE field1 != 0)
但我不确定如何编写下一部分,因为field1
实际上是0
。
请指教。谢谢!
答案 0 :(得分:1)
使用CASE
声明:
SELECT *
FROM foo
JOIN bar
ON bar.ID = CASE foo.field1 WHEN 0 THEN foo.field2 ELSE foo.field1 END