Использование:
SELECT CASE
WHEN T.option1 = ? THEN -1
WHEN T.option2 = ? THEN 0
ELSE 1
END AS field1
FROM Table1 AS T
Я не могу заставить ваш оригинальный TSQL работать - я получаю:
Сообщение 4145, уровень 15, состояние 1, строка 4
Выражение небулева типа, указанное в контексте, где ожидается условие, около 'THEN'.
... потому что нет оценки стоимости. Если вы проверяете, являются ли столбцы пустыми, вам нужно использовать:
SELECT CASE
WHEN T.option1 IS NULL THEN -1
WHEN T.option2 IS NULL THEN 0
ELSE 1
END AS field1
FROM Table1 AS T
... или если вам нужно, когда они не равны нулю:
SELECT CASE
WHEN T.option1 IS NOT NULL THEN -1
WHEN T.option2 IS NOT NULL THEN 0
ELSE 1
END AS field1
FROM Table1 AS T
Короткое замыкание выражений CASE - если первое совпадает с WHEN, оно возвращает значение и завершает обработку для этой строки - поэтому параметры впоследствии не учитываются.