T-SQL查询&x27;其中';基于If语句
您好,我从SQL server存储过程中获得以下信息:T-SQL查询&x27;其中';基于If语句,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,您好,我从SQL server存储过程中获得以下信息: SET @GenderToSearchBy = CASE When @Gender IS NOT NULL And @Gender='M' THEN @MaleID When @Gender IS NOT NULL And @Gender='F' Then @FemaleID Else NULL End SELECT FRST_NAM
SET @GenderToSearchBy =
CASE
When @Gender IS NOT NULL And @Gender='M' THEN @MaleID
When @Gender IS NOT NULL And @Gender='F' Then @FemaleID
Else NULL
End
SELECT FRST_NAME,LAST_NAME,ID_NUMB,GRDE_DSCN,
GEND_ID FROM #TEMP_STUD WHERE GEND_ID=@GenderToSearchBy
现在,我想让它工作,如果
@Gender
为NULL或不等于M
或F
,那么搜索两种性别,这意味着在不需要的地方,有没有办法不在案例中写两个单独的查询就可以做到这一点
WHERE GEND_ID = COALESCE(@GenderToSearchBy, GEND_ID)
或ISNULL
WHERE GEND_ID = ISNULL(@GenderToSearchBy, GEND_ID)
如果@Gender不能为null,但不能为M或F以外的值,那么这将没有帮助。@cdonner你确定吗?他的问题的这一部分是关键“为null或不等于M或F,然后搜索两种性别”@cdonner如果你分析SET
语句,那就很好了。任何NULL或非M或F
的值都将等于NULL
,请参见CASE WHEN…Else NULL
。如果您尝试为@gender
输入X
,您认为SET@GenderToSearchBy
的值是否为X
?不,它是空的。