Преобразование нескольких IIfs при преобразовании из MS Access в SQL Server - PullRequest
0 голосов
/ 03 августа 2020

Я новичок в операторах 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,

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Выражение стандартное 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 никогда не оценивается как истинное, поэтому не делает ничего особенно полезного.

0 голосов
/ 03 августа 2020

Что-то не так.

  1. Круглые скобки не сбалансированы
  2. Значение условия одинаково в обоих случаях.

P.GM_VAR .GameXrefVar.DCLBGame P.GM_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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...