我有一个select语句,我想像这样选择条件
IFNULL(field_a,field_a,feild_b)
以便它检查字段a如果a为null,则select将是字段b
可能吗?
答案 0 :(得分:84)
使用COALESCE:
SELECT COALESCE(field_a, field_b)
COALESCE是ANSI标准函数,它从指定的列列表中返回第一个非空值,从左到右处理列。因此,在示例中,如果field_a
为null,则将显示field_b
值。但是,如果指定的列中没有非空值,则此函数将返回NULL。
它支持MySQL(我在4.1上使用过它),SQL Server(自v2000起),Oracle 9i + ......
答案 1 :(得分:45)
和皮肤那种猫的另一种方式(灵活的不仅仅是空比较)......
select if(field_a is not null, field_a, field_b) from...
答案 2 :(得分:37)
答案 3 :(得分:0)
带有语法和示例的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 |
+------------+-----------+----------+-----------