我有两个表 - 一个是事务表,另一个是查找表。这些表在两列上连接,其中一列总是有值,而另一列可能没有。
采样这个
transaction table
category | subcategory | marks
A | 01 | 10
A | 02 | 20
B | 03 | 30
B | 04 | 40
C | 05 | 50
lookup table
category | subcategory | cut-off
A | | 15
A | 01 | 25
B | 03 | 35
B | | 55
C | | 75
transaction
我希望通过加入category
和subcategory
列来获得表格中每个条目旁边的截止值。对于subcategory
不完全匹配的情况,null
需要选择对应的记录。
所需的输出格式:
output format
category | subcategory | marks | cut-off
A | 01 | 10 | 25
A | 02 | 20 | 15
B | 03 | 30 | 35
B | 04 | 40 | 55
C | 05 | 50 | 75
我一直在尝试按照下面的查询进行思考,问题当然是它不能按照我想要的方式工作,因为它不能正确处理 null 情况。
select t.category, t.subcategory, t.marks, l.cut-off
from transaction t
left outer join lookup l
on t.category = l.category
and t.subcategory = l.subcategory
我是否需要多个查询(例如单独union all
处理null
的查询not null
?是否有适用于单个查询的选项?