我有一个选择语句,我想让选择像这样有条件:
IFNULL(field_a, field_a, field_b)
以便它检查字段 a。如果 a 为空,则选择字段 b。
那可能吗 ?
使用COALESCE:
SELECT COALESCE(field_a, field_b)
COALESCE 是一个 ANSI 标准函数,它返回指定列列表中的第一个非空值,从左到右处理列。因此在示例中,如果field_a
为 null,field_b
则将显示值。但是,如果指定的列中没有非空值,此函数将返回 NULL。
它支持 MySQL(我在 4.1 上使用过)、SQL Server(自 v2000 起)、Oracle 9i+...
还有另一种给猫剥皮的方法(不仅可以灵活用于空比较)...
select if(field_a is not null, field_a, field_b) from...
MySQL IFNULL() 与语法和示例
句法
IFNULL 函数的语法是:
IFNULL(expression_1,expression_2);
SELECT
name, IFNULL(businessphone, homephone) phone
FROM
users;
#The above query return this result from users table
+------------+-----------+----------+-----------
| id | name | phone |
+------------+-----------+----------+-----------
| 5 | Tommy Hill | (541) 754-3009 |
| 6 | John Smith | (541) 754-3110 |
| 10 | Mark Greenspan | (541) 754-3111 |
| 11 | Kelvin Row | (541) 754-3111 |
+------------+-----------+----------+-----------