Несколько значений в выражении THEN для SQL CASE - PullRequest
2 голосов
/ 04 августа 2011

Мне интересно, можно ли указать несколько значений в тогда части инструкции case в T-SQL?

Я приложил кусок кода, где я использую это для объединения некоторых таблиц в запросе. Я добавил комментарий во фрагмент.

LEFT JOIN Business B ON v.BusID = B.BusID
LEFT JOIN BusinessTypeKey T ON B.BusinessTypeID = T.BusTypeID
LEFT JOIN Location L ON L.BusID = B.BusID
AND L.HeadQuarters = CASE 
WHEN (SELECT COUNT(1) from Location L2
WHERE L2.BusID = B.BusID) = 1                                                                           
THEN 1,0   -- Would like to specify either 1 or 0 here. I suppose I could also make it euqal to -> L.HeadQuarters but would like a better way to impose it                                                                                                  
ELSE 1  
END

Ответы [ 2 ]

4 голосов
/ 04 августа 2011

Это немного уродливо, но если предположить, что HeadQuarters не десятичный / числовой тип, а только целочисленные значения,

AND L.HeadQuarters BETWEEN CASE WHEN (SELECT COUNT...) = 1 THEN 0 ELSE 1 END AND 1;
0 голосов
/ 04 августа 2011

Ты имеешь в виду ...?

LEFT JOIN whatever
ON...
CASE...WHEN...THEN...END = 1
OR
CASE...WHEN...THEN...END = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...