我需要知道是否可以在MySQL中执行此操作。有一个像这样的表:
| ID | Column1 | Column2|
+-----------------------+
| 1 | 1 | null |
| 2 | null | 2 |
| 3 | 3 | null |
获取一个结合了column1和column2的列:
| ID | Column3 |
+--------------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
因此逻辑将针对每一行,如果column1的值与null不同,则第3列将是该值,否则,第2列中的值将为。
感谢。
答案 0 :(得分:2)
使用 SELECT ID, IFNULL(Column1,Column2) AS Column3 FROM TABLE;
获取列的第一个非空值
coalesce
答案 1 :(得分:0)
USE if null
InsertedDate
如果column1为null,则使用column2
答案 2 :(得分:0)
您可以使用CASE
select id, case when column1 is null then column2
when column2 is null the comumn1 end as column3
来自your_table的
如果为null
select id, ifnull( column1 , column2 ) as column3
from your_table
或合并
select id, coalesce( column1 , column2 ) as column3
from your_table
答案 3 :(得分:0)
您可以使用coalesce()或ifnull()函数来实现所需的输出:
select id, coalesce(column1, column2) as column3 from yourtable
注意:如果两个列都为null,则上面的表达式将返回null。如果两列都不为null,则使用column1中的值。