Ошибка синтаксического анализа, скорее всего, вызвана тем, что CASE WHEN не принимает вашу функцию REGEXP_REPLACE в качестве действительной
ELSE ...
«результат».
Возможно, из справки не очень ясно , но "результат" (значение, возвращаемое THEN / ELSE) может быть только a измерение , metri c или буквенное значение .
Учитывая, что вам нужно что-то более динамическое c, для обхода проблемы следует использовать дополнительное вычисляемое поле Например, с именем "Event_Exp". Для этого поля вы можете использовать
REGEXP_REPLACE(Event Label,'.*:','')
в качестве формулы расчета.
Ваши предыдущие выражения CASE WHEN затем станут
CASE
WHEN REGEXP_MATCH(Event Label,'Registrate ahora')
THEN 'Registrate ahora'
ELSE Event_Exp
END
Хотя это не интуитивно понятно для людей, привыкших к Сила CASE КОГДА в SQL, она должна удовлетворять ограничениям, которые есть в Google Data Studio и работали для меня в аналогичном сценарии.
Если это предложение не решит вашу проблему, оно также может быть связана с более общей ошибкой, которую имеет Google Data Studio в отношении преобразования регулярных выражений в правильные операторы для запросов к базе данных. Нам пришлось разрабатывать обходные пути для всех регулярных выражений, используемых вместе с коннектором PostgreSQL, и исправление Google все еще не выполнено.
Система отслеживания проблем предоставляет обзор всего, что ожидает исправления + возможные обходные пути для некоторых случаев.