我需要检查表中的某些字段,如果它们为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
如何在一个字段中获取这些状态?
答案 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