Группировать по с условным запросом с использованием SQL Server

Это мой запрос, я просто пытаюсь сгруппировать по условию.

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 ')'

В чем причина этого?

Вы все еще используете CardType и customertype в группе по

Ravi 27.10.2018 07:50

Ваша экспрессия CASE должна заканчиваться END, то есть (case when CardType =2 then CardType else CustomerType END).

Nick 27.10.2018 07:53
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

вы просто пропустили 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 имеют разные типы.

Другие вопросы по теме