Est-il possible de rechercher des noms dans Source
?
CASE WHEN Source="facebook_instagram" OR Source="facebook.com" OR Source="m.facebook.com" OR Source="instagram.com" OR Source="instagram" OR Source="l.facebook.com" OR Source="lm.facebook.com" OR Source="facebook" OR Source="de-de.facebook.com" THEN "Social" ELSE "Sonstige" END
Existe-t-il un moyen de sélectionner toutes les sources facebook
, sans les énumérer?
3 Réponses :
Vous pouvez certainement réduire la quantité de code en utilisant REGEXP_MATCH
Par exemple
CASE WHEN REGEXP_MATCH(Source, '.*facebook.*') OR REGEXP_MATCH(Source, '.*instagram.*') THEN 'Social' ELSE 'Sonstige' END
Une autre option pour éliminer une partie de la duplication consiste à utiliser dans a >. Pour votre code qui aboutirait à quelque chose comme: CASE
WHEN Source IN("facebook_instagram", "facebook.com", "m.facebook.com", "instagram.com", "instagram", "l.facebook.com", "lm.facebook.com", "facebook", "de-de.facebook.com") Then "Social"
ELSE "Sonstige"
END
Cela peut être réalisé en utilisant la fonction REGEXP_MATCH
dans une instruction CASE
; le RegEx ci-dessous recherche facebook
ou ( |
) instagram
quel que soit le début de la chaîne ( ^
), ce qui précède le texte (. *
), après le texte (. *
) ou ce qui se termine par ( $
):
CASE WHEN REGEXP_MATCH(Source, "^.*(facebook|instagram).*$") THEN "Social" ELSE "Sonstige" END
Rapport Google Data Studio et un GIF à élaborer: