2015-09-07 56 views
0

在SQL-Server 2008中我該如何實現以下目標 -的if-else在where子句中的SQL服務器

select * from student 
where 
(
    (if studentId is not null then studentId='x') 
    else 
    (firstName='abc' and age > 26) 
) 

我想避免重寫整個SELECT子句的任何條件分開。

回答

2

你可以簡單地在你的WHERE子句中使用的OR

SELECT * 
FROM student 
WHERE 
    studentId = 'x' 
    OR (firstname = 'abc' AND age > 26) 
+1

我想你需要爲OR的第二部分添加一個顯式的'AND studentId爲null'(假設我正確地閱讀這個問題,括號看起來有點奇怪),但是,是的,這是ans WER。 –

+0

@lc。 - 不,不需要。 UPD:對不起,同意 - 在這個特別的措詞你是正確的。 –

+0

@RogerWolf這取決於你如何閱讀問題中的「else」 –