从ms access转换到sql server时转换多个IIF

nsc4cvqm  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(279)

我不熟悉sql server case 声明。当我有多个IIF时,如何转换?

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,
uurv41yg

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` 从不计算为真,因此它不会做任何特别有用的事情。
rqcrx0a6

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

相关问题