0 голосов
спросил от в категории SQLServer
В вашем коде есть ошибка в
WHEN (belowthen2 < 2 and   between2and5 between 2 and 5 and above5 >5 ) THEN 'Above'  and ELSE 'Below' 
Удалите и , которые я выделил,
Есть несколько хороших примеров того, как иметь несколько условий в выражении CASE на сайте документации -
WHEN (belowthen2 < 2 and   between2and5 between 2 and 5 and above5 >5 ) THEN 'Above'  and ELSE 'Below' 
# [
create table #example (a int) insert into #example (a) values (0),(25), (50), (100)
#]

Вот тривиальный пример с использованием этих данных:
create table #example (a int) insert into #example (a) values (0),(25), (50), (100)
Этот запрос имеет 4 условия
select CASE WHEN a < 25 THEN '1st Quartile' WHEN a < 50 THEN '2nd Quartile' WHEN a < 75 THEN '3rd Quartile' ELSE '4th Quartile'  END,a  FROM #example
, давая результаты
1st Quartile 0 2nd Quartile 25 3rd Quartile 50 4th Quartile 100
Вот немного более сложный пример
create table #example2 (a int, b int, c int, d int) insert into #example2 (a,b,c,d) values (1,0,0,0), (2,1,0,0), (1,1,0,0), (1,0,0,1) select CASE WHEN a = 1 and d = 0 THEN 'Condition 1' WHEN a = 1 and b = 1 and c = 1 and d = 1 THEN 'Condition 2' ELSE 'No conditions met' END from #example2
К сожалению, вы не дали нам ваш полный запрос, ни образцы данных, ни ожидаемые результаты, поэтому я не могу помочь вам с вашей конкретной проблемой.

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

0 голосов
ответил от
----sp_help QWERTY select inum,supervisor,category,symn,belowthen2,between2and5,above5,dqty, (CASE  WHEN (belowthen2 < 2 and between2and5 =0 and above5 =0 )  THEN 'belowthen2' else       case  when (between2and5 between 2 and 5 and belowthen2 =0 and above5=0) Then 'between2and5' else   case when  ( between2and5 =0 and belowthen2 =0 and above5>5)  then   'above5'   end     end     end     ) as STATUS from ( ---- )o ;

Категории

Добро пожаловать на сайт DraftingCode Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

Связанных вопросов не найдено

...