MySQL列,其他两列中包含非空值

时间:2016-07-21 13:30:26

标签: mysql

我需要知道是否可以在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列中的值将为。

感谢。

4 个答案:

答案 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中的值。