gpt4 book ai didi

google-data-studio - 为什么 Google Data Studio 中只应用第一个 case 语句?

转载 作者:行者123 更新时间:2023-12-04 11:10:03 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





SQL Case Expression Syntax?

(8 个回答)


3个月前关闭。




我把这两个结合起来 REGEX rules在单个 CASE statement在 Google Data Studio 中,但仅应用第一条规则。

CASE
WHEN REGEXP_MATCH(Seite, "^/amp/.*") THEN REGEXP_REPLACE(Seite, "^/amp/", "")
WHEN REGEXP_MATCH(Seite, ".*-[0-9]+$") THEN REGEXP_REPLACE(Seite, "-[0-9]+$", "")
END
如果我交换规则的顺序,同样只应用第一条规则;不是第二个。为什么不应用第二条规则?我怎样才能让它同时应用这两个规则?

最佳答案

这是预期的行为。 CASE语句只运行 第一个计算结果为真的表达式 , 并非所有计算结果为 true 的表达式。
来自 Data Studio documentation :

CASE evaluates each successive WHEN clause and returns the first result where the condition is true. Any remaining WHEN clauses and the ELSE result are not evaluated. If all WHEN conditions are false or NULL, CASE returns the ELSE result, or if no ELSE clause is present, returns NULL.


如果您想在单个字符串上运行多个正则表达式,您需要创建一个通用正则表达式来组合所有正则表达式或嵌套这些规则,确保在前一个规则之后应用一个规则。

对于您的具体情况,我认为没有理由运行 REGEXP_MATCH然后 REGEXP_REPLACECASE陈述。相反,只需运行 REGEXP_REPLACE你就完成了(如果正则表达式不匹配,原始字符串不会改变)。
在一条指令中运行多个正则表达式替换的示例:
REGEXP_REPLACE(Seite, "(^/amp/|-[0-9]+$)", "")
注意 |的使用(管道)分隔符做一个 or手术。实际上,它的意思是:“用 ^/amp/(空字符串)替换匹配 -[0-9]+$'' 的字符串的所有部分”。

关于google-data-studio - 为什么 Google Data Studio 中只应用第一个 case 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67873954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com