On SQL server 2005 I am trying to query this select statement
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    It returns the error below
Msg 156, Level 15, State 1, Line 4 Incorrect syntax near the keyword 'IN'.
Please give me some advice on what could be wrong with my code.
CASE can be used in any statement or clause that allows a valid expression. For example, you can use CASE in statements such as SELECT, UPDATE, DELETE and SET, and in clauses such as select_list, IN, WHERE, ORDER BY, and HAVING.
CASE can be nested in another CASE as well as in another IF…ELSE statement. In addition to SELECT, CASE can be used with another SQL clause like UPDATE, ORDER BY.
Another way to use the Case Statement is within the WHERE clause. There, it may be utilized to alter the data fetched by a query based on a condition. Within that context, the Case Statement is ideally suited to both static queries, as well as dynamic ones, such as those that you would find inside a stored procedure.
CASE AlarmEventTransactions.DeviceID should just be CASE.
You are mixing the 2 forms of the CASE expression.
Thanks for the Answer I have modified the statements to look like below
SELECT      AlarmEventTransactionTable.TxnID,      CASE      WHEN DeviceID IN('7', '10', '62', '58', '60',             '46', '48', '50', '137', '139',              '141', '145', '164') THEN '01'     WHEN DeviceID IN('8', '9', '63', '59', '61',             '47', '49', '51', '138', '140',             '142', '146', '165') THEN '02'              ELSE 'NA' END AS clocking,      AlarmEventTransactionTable.DateTimeOfTxn FROM      multiMAXTxn.dbo.AlarmEventTransactionTable 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With