У меня есть бизнес-задача разделить одно поле на два:
SUBSTRING_INDEX (SUBSTRING_INDEX (cal_participants.name, '', 1), '', -1) как memberfirst,
Это работает. Вывод представляет собой 4-значный номер, который представляет собой код города, например 7591.
Теперь мне нужно создать функцию CASE, чтобы вернуть фактическое имя местоположения и связать местоположение с командой.
Я пробовал это:
(CASE
WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(cal_participants.name, ' ', 1), ' ', -1) as memberfirst = 7591 THEN "Europe"
END)
И мне нужно сделать псевдоним в указанном выше месте (когда 7591 - это Европа, тогда "Европа как имя команды)
SELECT
cal_participants.participant_id as "member_id",
cal_participants.name as "member_name",
cal_meeting.meeting_id as "reference",
cal_meeting.created_at as "date",
cal_meeting.startdatetime as "start time",
cal_meeting.enddatetime as "end time",
cal_meeting.status as "status",
cal_meeting.deleted_at as "deleted time",
campaigns.name as "campaign name",
SUBSTRING_INDEX(SUBSTRING_INDEX(cal_participants.name, ' ', 1), ' ', -1) as memberfirst,
(CASE
WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(cal_participants.name, ' ', 1), ' ', -1) as memberfirst = 7591 THEN "Europe"
END)
FROM cal_meeting
JOIN cal_participants on cal_meeting.participant_id = cal_participants.participant_id
JOIN campaigns on cal_meeting.campaign = campaigns.id
То, что я хочу, это:
1) Функция для возврата «Европа», когда memberfirst равен 7591
2) Свяжите это (Европа) с командой
Я получаюэта ошибка: Ошибка: (pymysql.err.ProgrammingError) (1064, у вас есть ошибка в вашем синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с \ 'как memberfirst = 7591 THEN"Тест" \ nEND) \ n \ nFROM cal_meeting \ n \ nJOIN cal_participants \ 'в строке 18')