根据带有 CASE 语句的标题表中的值筛选详细信息表



根据标题表中的值,我想选择一组不同的详细信息表。如果标题表的状态为2或更高,则应选择状态为2或更高的详细信息。 请注意,de 值并不总是相等的。

简化语句示例

SELECT * FROM DETAIL d
INNER JOIN HEADER h on h.key=d.key
WHERE CASE WHEN h.status < 2 THEN d.status <2 ELSE d.status >=2 END

您可以使用简单的OR-语句选择对应于标题状态的详细信息行。

SELECT * FROM DETAIL d
INNER JOIN HEADER h on h.key=d.key
WHERE ( (h.status >=2 AND d.status >=2) OR (h.status <2 AND d.status <2) )

因为只为标题表选择一个值,所以两个子句中只有一个为 True,并选择这些详细信息行。

最新更新