SQL: 如何将两个表合并为一个

18 浏览
0 Comments

SQL: 如何将两个表合并为一个

我已经阅读了将两个3行列合并为一个6行列的解决方案,但我认为我想要的不同。\n假设你有两列:\n

列1      列2
NULL     D
B          NULL
C          NULL

\n是否有一种方法可以获得一个包含所有信息的表格?\n

列3
D
B
C

\n我在执行UNION ALL之后得到这些列。所以这些不是数据库表,而是我选择的列。\n我正在使用postgresql。\n我到目前为止尝试过以下方法:\n

SELECT col1, col2, t2.col3 from t1
LEFT JOIN t2
ON t1.col1 like  '%.'||t2.col3
UNION ALL
SELECT col1, col2, col3 From t1
LEFT JOIN t2
ON t1.col1 = concat(t2.col3, '.')

\n你可以看到,当我在不同条件下连接相同的两个表时,我得到不同的信息片段。

0
0 Comments

SQL: 如何将两个表合并成一个

有时候我们需要将两个表的数据合并成一个,这时候可以使用SQL语句中的COALESCE函数来完成。COALESCE函数可以接受多个参数,返回第一个非空参数的值。

以下是使用COALESCE函数来合并两个表的示例代码:

SELECT COALESCE(Column1,Column2) AS Column3 
FROM t1

上述代码中,我们使用了COALESCE函数来将t1表中的Column1和Column2两列进行合并,并将结果命名为Column3。

除了使用COALESCE函数,我们还可以使用UNION ALL操作符来实现表的合并。以下是使用UNION ALL操作符来合并表的示例代码:

SELECT Column1 FROM t1 WHERE Column1 IS NOT NULL
UNION ALL
SELECT Column2 FROM t1 WHERE Column2 IS NOT NULL

上述代码中,我们首先从t1表中选取Column1列中非空的数据,然后使用UNION ALL操作符将其与Column2列中非空的数据合并。

无论是使用COALESCE函数还是UNION ALL操作符,都能实现将两个表合并成一个的功能。但是相比起来,使用COALESCE函数更为简洁和直观。

如果需要将两个表合并成一个,建议使用COALESCE函数来完成。

0