SQL Server CAS .. QUAND .. DANS l'énoncé
Sur SQL server 2005, je suis en train d'interroger cette instruction select
SELECT AlarmEventTransactionTableTable.TxnID,
CASE AlarmEventTransactions.DeviceID
WHEN DeviceID IN( '7', '10', '62', '58',
'60', '46', '48', '50',
'137', '139', '142', '143', '164' )
THEN '01'
WHEN DeviceID IN( '8', '9', '63', '59',
'61', '47', '49', '51',
'138', '140', '141', '144', '165' )
THEN '02'
ELSE 'NA'
END AS clocking,
AlarmEventTransactionTable.DateTimeOfTxn
FROM multiMAXTxn.dbo.AlarmEventTransactionTable
Elle renvoie l'erreur ci-dessous
Msg 156, Niveau 15, État 1, Ligne 4 syntaxe Incorrecte près de la
mot-clé 'DANS'.
Merci de me donner quelques conseils sur ce qui pourrait être mal avec mon code.
Vous devez vous connecter pour publier un commentaire.
CASE AlarmEventTransactions.DeviceID
faut juste êtreCASE
.Vous êtes le mélange les 2 formes de la
CAS
expression.Merci pour la Réponse
J'ai modifié les déclarations de ressembler à ci-dessous
Essayez ceci...
Juste supprimer en surbrillance la chaîne
SÉLECTIONNEZ
AlarmEventTransactionTableTable.TxnID,
CAS AlarmEventTransactions.Id
LORSQUE DeviceID EN('7', '10', '62', '58', '60', ...)
Il pourrait être plus facile à lire lorsqu'on écrit à la main, en utilisant le "cas simple", par exemple
...le type qui me fait chose que vous pourriez peut-être bénéficier d'une table de recherche pour lesquelles vous pouvez
JOIN
pour éliminer lesCASE
expression entièrement.