你好,我有一个来自SQL服务器存储过程的代码段:
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
,有没有办法在不在 CASE
中编写 2 个单独的查询的情况下实现?
SET
语句,任何NULL或非M或F
的内容都将等于NULL
,请看CASE WHEN....Else NULL
。如果你尝试为@gender
输入X
,你认为SET @GenderToSearchBy
的值是X
吗?不,它是NULL。 - John Woo