私はこのクエリを持っています。'CASE WHEN'を使用してクエリを設定するのが難しい
選択のロジックは@USER_NAME
パラメータは、それぞれの列の3次の表内に存在するかどうかである:
MODEL_RESPONSIBLE MR> MR.USER_NAME
RESPONSIBLE_PLANT_MODEL> RPM.USER_NAME_MPR
RESPONSIBLE_AREA_MODEL> RAM.USER_NAME_AM
DECLARE
@USER_NAME varchar(max) = 'lorem',
@PROFILE_USER varchar(max) = null;
SELECT @USER_NAME, UserProfile =
CASE @USER_NAME
WHEN IN(RAM.USER_NAME_AM) THEN @PROFILE_USER = 'PROFILE 01'
WHEN IN(RPM.USER_NAME_MPR) THEN @PROFILE_USER = 'PROFILE 02'
WHEN IN(MR.USER_NAME) THEN @PROFILE_USER = MR.PROFILE_NAME
ELSE @PROFILE_USER = ''
END,
UserProfile
FROM MODELO M
INNER JOIN MODEL_RESPONSIBLE MR ON MR.ID_MODEL = M.ID_MODEL
INNER JOIN RESPONSIBLE_PLANT_MODEL RPM ON RPM.ID_MODEL = M.ID_MODEL
INNER JOIN RESPONSIBLE_AREA_MODEL RAM ON RAM.ID_MODEL = M.ID_MODEL
テストは正しく動作しませんでした。
クエリを組み立てるには、CASEまたはIF?
@PROFILE_USERに値を正しく割り当てる方法は?
ERROR: Incorrect syntax near the keyword 'IN'.
使用されているdbmsにタグを付けます。そこにはANSI以外のSQLがあります。 – jarlh
注意しておくと、それぞれの 'WHEN'の後に' IN'を削除するだけで、その特定のエラーを修正することができます。あなたは別のエラーが表示されますが、どちらが正しいか不明です。私が推測しなければならないのは、それぞれのTHENの後に '='に関係するということです。 –
@GordonLinoff正確に。 Exception in '=' –