SQL - 合并两个表中的列

问题描述 投票:0回答:2

我有两张桌子,例如:

Table A             Table B
+---------------+   +------------------------------+    
| ID   NAME     |   | ID    TYPE       DATE        |    
+---------------+   +------------------------------+    
| 001    A      |   | 001    URGE     2024-01-01   |    
| 002    B      |   | 001    UPDATE   2024-01-02   |
| 003    C      |   | 002    UPDATE   2024-01-03   |
+---------------+   +------------------------------+

我的预期结果是:

   +-------------------------------------+    
   | ID    NAME   TYPE       DATE        |    
   +-------------------------------------+    
   | 001    A    URGE     2024-01-01     |    
   | 002    B    -        -              |
   | 003    C    -        -              |
   +-------------------------------------+

我想选择表A中的所有结果,并以条件“TYPE = 'URGE'”连接表B并输出DATE,否则DATE列输出NULL。 SQL应该怎么写?非常感谢!

sql db2
2个回答
0
投票

你可以尝试吗:

SELECT
    A.ID,
    A.NAME,
    CASE WHEN B.TYPE = 'URGE' THEN B.TYPE ELSE '-' END AS TYPE,
    CASE WHEN B.TYPE = 'URGE' THEN B.DATE ELSE NULL END AS DATE
FROM
    TableA A
LEFT JOIN
    TableB B ON A.ID = B.ID AND B.TYPE = 'URGE';



0
投票

SELECT A.ID, A.NAME, COALESCE(B.TYPE, '-') AS TYPE, COALESCE(B.DATE, '-') AS DATE FROM TableA A LEFT JOIN TableB B ON A.ID = B.ID并且 B.TYPE = '敦促'

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