Это мой запрос, я просто пытаюсь сгруппировать по условию.
select
CardType, TypeTitle, EducationType, typetitle, customertype
from
#temprec
group by
(case when CardType = 2 then CardType else CustomerType),
CardType, TypeTitle, EducationType, typetitle, customertype
Но я получаю сообщение об ошибке
Incorrect syntax near ')'
В чем причина этого?
Ваша экспрессия CASE
должна заканчиваться END
, то есть (case when CardType =2 then CardType else CustomerType END)
.
вы просто пропустили end
после того, как еще
select
CardType, TypeTitle, EducationType, typetitle, customertype
from
#temprec
group by
(case when CardType = 2 then CardType else CustomerType end),
CardType, TypeTitle, EducationType, typetitle, customertype
Ваш код вообще не требует CASE
, потому что и CardType
, и CustomerType
уже находятся в GROUP BY
:
select CardType, TypeTitle, EducationType, typetitle, customertype
from #temprec t
group by CardType, TypeTitle, EducationType, typetitle, customertype ;
Я сомневаюсь в необходимости GROUP BY
, потому что у вас нет функций агрегирования. Вы даже можете добавить выражение в SELECT
:
select distinct (case when CardType = 2 then CardType else CustomerType end),
CardType, TypeTitle, EducationType, typetitle, customertype
from #temprec t;
Обратите внимание, что это может привести к ошибке преобразования типа, если CardType
и CustomerType
имеют разные типы.
Вы все еще используете CardType и customertype в группе по