我有两个表产品和职位。
产品:
id BIGINT PRIMARY KEY,
product VARCHAR(100),
criterium1 VARCHAR(100),
criterium2 VARCHAR(100)
Run Code Online (Sandbox Code Playgroud)
职位:
id BIGINT PRIMARY KEY,
position VARCHAR(100),
criterium1 VARCHAR(100),
criterium2 VARCHAR(100)
Run Code Online (Sandbox Code Playgroud)
每个表都有criterium1和criterium2。我想要一个包含职位和产品之间连接的结果集。对于每个职位,我都想要与 criterium1 或 criterium2 匹配的相应产品;当 criterium1 找不到或为 NULL 时,它需要在 criterium2 上匹配。
SQL 语句会是什么样的?
到目前为止,我已经尝试过:
SELECT * FROM positions pos
INNER JOIN products pro
ON COALESCE(pos.criterium1, pos.criterium2,'')
= COALESCE( pro.criterium1, pro.criterium2,'')
Run Code Online (Sandbox Code Playgroud)
然而,这不匹配pro.criterium1到pos.criterium1或pro.criterium2到pos.criterium2。
补充:对不起,我的要求有点模糊。让我试着完成这幅画。
我们使用的是 SQL Server 2005。
products:
id product criterium1 criterium2
1 pro1 AAA1 910
2 pro2 106 BB2 …Run Code Online (Sandbox Code Playgroud)