繁体   English   中英

在 Databricks 中使用 SQL 的语句时,如何在单个案例中创建多个“ELSE”语句?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM