有条件的杆菌数量基于值

问题描述 投票:-1回答:2

我想根据原始数据库列中的值来连接数据库的其他列。例如,在表A中,我的列“数字”带有谷值(1,2,3),在表B中,我有三个列“ 1”,“ 2”和“ 3”。如果列“ number” = 1,我想加入列“ 1”;否则,如果列“ number” = 2,则加入列“ 2”。我已经尝试过使用此代码,但是它不起作用:

SELECT
a.*
(CASE WHEN a.number = '1' then b.1
CASE WHEN a.number = '2' then b.2
END)FROM
table_a AS a
LEFT JOIN table_b AS b ON a.id = b.id

您能帮我吗?谢谢

sql join conditional-statements case-statement
2个回答
0
投票

将条件移至on子句:

SELECT a.*, b.*
FROM table_a a LEFT JOIN
     table_b b
     ON (a.number = 1 and a.id = b.1) OR
        (a.number = 2 and a.id = b.2) OR
        (a.number = 3 and a.id = b.3);

不清楚在a条件下要从表join中匹配什么。我可以推测您希望a.id匹配b中三列之一。


0
投票

好,我解决了这个问题,谢谢您的时间。

© www.soinside.com 2019 - 2024. All rights reserved.