我不熟悉sql server case 声明。当我有多个IIF时,如何转换?
case
IIF((P.GM_CD=6150 Or P.GM_CD>=12100), IIF(GameXrefVar.DCLBGame = null, P.GM_VAR.GameXrefVar.DCLBGame,P.GM_VAR.GameXrefVar.DCLBGame) AS GameID,
uurv41yg1#
标准 case 表达是你应该经常使用的。大概你打算:
(CASE WHEN (P.GM_CD = 6150 OR P.GM_CD >= 12100) AND GameXrefVar.DCLBGame IS null THEN P.GM_VAR.GameXrefVar.DCLBGame WHEN (P.GM_CD = 6150 Or P.GM_CD >= 12100) THEN P.GM_VAR.GameXrefVar.DCLBGame END) AS GameID, ``` `= NULL` 从不计算为真,因此它不会做任何特别有用的事情。
rqcrx0a62#
有点不对劲。括号不平衡两种情况下的条件值相同。p、 gm\u var.gamexrefvar.dclbgame p.gm\u var.gamexrefvar.dclbgame
CASE WHEN (P.GM_CD = 6150 OR P.GM_CD >= 12100) AND GameXrefVar.DCLBGame IS NULL THEN P.GM_VAR.GameXrefVar.DCLBGame END AS GameID
2条答案
按热度按时间uurv41yg1#
标准
case
表达是你应该经常使用的。大概你打算:rqcrx0a62#
有点不对劲。
括号不平衡
两种情况下的条件值相同。
p、 gm\u var.gamexrefvar.dclbgame p.gm\u var.gamexrefvar.dclbgame