![](/img/trans.png)
[英]How to add if and else condition within a return in python? Similar to using case when within a Case statement in SQL
[英]How to create multiple 'ELSE' statements in a single case when statement using SQL in Databricks?
我有一个查询,我正在尝试基于 Databricks 中的 tableau 中的 if/else 自定义计算来构建,我无法使用 Tableau 中 If/Else 逻辑中的“Case When”将 SQL 中的逻辑重写为新字段.
表格计算:
IF ATTR(MEMBER) = 'TRUE'
THEN IF (ATTR([MARKE]) = 'VT'
AND (ATTR([MARKET]) = 'VT' AND PRICE < 5000 AND THRESHOLD > 100) OR
(ATTR([MARKET]) = 'SEA' AND PRICE < 3500 AND THRESHOLD > 85) OR
(ATTR([MARKET]) = 'CAL' AND PRICE < 1750 AND THRESHOLD > 50)
THEN 50
ELSE SPLIT_PERCENT END
ELSE
IF ATTR([MARKET]) = 'AUSTIN' THEN [AUSTIN_SPLIT]
ELSE IF ATTR([MARKET]) = 'NYC' THEN [NYC_SPLIT]
ELSE SPLIT_PERCENT/100 END END END
这是我当前失败的查询:
CASE WHEN MEMBER = 'TRUE' AND
(MARKET = 'VT' AND PRICE < 5000 AND THRESHOLD > 100) OR
(MARKET = 'SEA' AND PRICE < 3500 AND THRESHOLD > 85) OR
(MARKET = 'CAL' AND PRICE < 1750 AND THRESHOLD > 50) THEN 50
ELSE SPLIT_PERCENT
ELSE CASE WHEN MARKET = 'AUSTIN' THEN AUSTIN_SPLIT
WHEN MARKET = 'NYC' THEN NYC_SPLIT
ELSE SPLIT_PERCENT/100
END AS NEW_STANDARD_SPLIT
想法是将所有这些条件合并到一个称为“新标准拆分”的字段中。 我读到有多个“ELSE”语句,这就是我的语法的来源,但我仍然出错。 任何帮助将非常感激。
让我指出您没有保留 Tableau 中的逻辑。 每次 Tableau 说“IF”时,您的 Sql 都需要说“CASE”。 现在看看 Tableau 的第 2 行 - Sql 中缺少它。 真的,这是唯一的区别。 试试看 - 从 Tableau 示例重新开始,将“IF”替换为“CASE”,取出 Attr() 声明,您应该对 go 感到满意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.