小编Hen*_*ieR的帖子

根据多个条件连接两个表

我有两个表产品和职位。

产品:

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.criterium1pos.criterium1pro.criterium2pos.criterium2

补充:对不起,我的要求有点模糊。让我试着完成这幅画。

我们使用的是 SQL Server 2005。

products:

id   product   criterium1   criterium2
 1    pro1       AAA1         910
 2    pro2       106          BB2 …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 join sql-server

2
推荐指数
1
解决办法
4万
查看次数

标签 统计

join ×1

sql-server ×1

sql-server-2005 ×1