检查多个字段中的值

时间:2015-02-19 12:21:50

标签: mysql sql

我需要检查表中的某些字段,如果它们为null或有某些内容并在一列中返回结果。

例如:

+-------------+------------+-------------+------------+  
| Field1      | Field2     |  Filed3     | Field4     |
+-------------+------------+-------------+------------+  
| 1           | 2          |      3      |            |                 
+-------------+------------+-------------+------------+

查询的伪代码:

IF field1 has value THEN  
    PRINT status1  
ELSE IF field2 has value THEN  
    PRINT status2  
ELSE IF field3 has value THEN  
    PRINT status3  
ELSE IF field4 has value THEN
    PRINT status4

如何在一个字段中获取这些状态?

2 个答案:

答案 0 :(得分:2)

假设“有值”意味着“非空”,那么您可以像这样使用case

select (case when field1 is not null then status1
             when field2 is not null then status2
             when field3 is not null then status3
             when field4 is not null then status4
        end)

通常在SQL中,您使用select而不是print来获取表格的结果。

答案 1 :(得分:1)

如果您只是想要第一个非NULL字段,我会看一下COALESCE函数

SELECT COALESCE(Field1, Field2, Field3, Field4) AS Status

http://www.w3resource.com/mysql/comparision-functions-and-operators/coalesce-function.php