如果在ms sql内部进行集成查询

时间:2014-10-21 12:11:16

标签: sql-server

我需要运行一个查询,该查询取决于该特定查询读取的字段的值。 这是我的问题:

SELECT * FROM foo JOIN bar ON bar.ID = foo.field1

如果foo.field10JOIN将在foo.field2上进行

我尝试过像

这样的东西
SELECT * FRMO foo JOIN bar ON bar.ID = (SELECT field1 FROM bar WHERE field1 != 0)

但我不确定如何编写下一部分,因为field1实际上是0

请指教。谢谢!

1 个答案:

答案 0 :(得分:1)

使用CASE声明:

SELECT *
FROM foo
JOIN bar 
    ON bar.ID = CASE foo.field1 WHEN 0 THEN foo.field2 ELSE foo.field1 END