我正在写一个红移查询,它需要使用多个case语句。
借口:顾客可以与一个以上的组织有联系,如甜食或盐等。
问:我们必须检查是否首先挑选了与“sweets”组织相关联的客户,如果没有与“sweets”相关联的客户,那么我们必须在flag=1时获取该组织的id。
我必须使用红移中的case语句来推导结果。
有三个不同的表:客户表、组织表和3个表,它们决定了客户与组织的关联方式。
![在此处输入图像描述][1]
下面是我尝试过的代码,但是在执行这个之后,我仍然得到两个组织id,而不是一个应该是sweet org的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
1条答案
按热度按时间7kqas0il1#
可以使用窗口函数: