if-else in where子句SQL-Server

时间:2015-09-07 04:41:36

标签: sql-server sql-server-2008

在SQL-Server 2008中,我如何实现以下目标 -

SignalR

我想避免分别为这两个条件重写整个select子句。

2 个答案:

答案 0 :(得分:2)

您只需在OR子句中使用WHERE

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

答案 1 :(得分:0)

您可以在case子句中使用where语句。您几乎可以想到case语句,如SQL"基于集合" if语句的版本 -

select * 
from student 
where 
    case 
        when studentId is not null and studentId = 'x'
            then 1
        when firstName='abc' and age > 26
            then 2
        else 0
    end <> 2

有关case声明的更多内容 -

https://msdn.microsoft.com/en-us/library/ms181765.aspx

http://sqlschool.modeanalytics.com/intermediate/case.html