【发布时间】:2020-06-01 09:10:49
【问题描述】:
我正在编写一个需要使用多个 case 语句的 Redshift 查询。
借口: 客户可以与多个组织相关联,例如甜食或盐等。
问: 我们必须首先检查与 'SWEETS' 组织关联的客户是否被选中,如果没有与 'SWEETS' 的隶属关系可用,那么我们必须获取 flag = 1 的组织的 id。
我必须在 redshift 中使用 case 语句来得出结果。
共有三个不同的表,客户表、组织表和确定客户如何与组织关联的 3 个表。
![在此处输入图片描述][1]
我尝试过的代码如下,但执行此代码后,我仍然得到两个组织 ID,而不是一个应该是甜蜜组织的 ID。
SELECT customer_id
, organization_id
FROM customer_details AS customer
LEFT JOIN organization AS org
ON customer.customer_id
AND organization_id = CASE WHEN organization_id IN (SELECT organization_id
FROM organization_type
WHERE organization_type = 'SWEET')
THEN organization_id
ELSE org.organization_id END
【问题讨论】:
-
以文本表格的形式提供样本数据和所需结果。
-
case 表达式。另外:这里不需要它。
标签: sql conditional-statements amazon-redshift