标签: mysql sql database if-statement
我有一个表'actor',其字段为'pk','fname',lname。 我想打印一个列(让我们调用这个名称)默认情况下打印fname但如果fname为null则打印lname。
我使用的查询是:
select if(fname = null,lname,fname) as name from actor;
然而,这并未实现给定的任务。 即使值为null,它也会打印fname。
答案 0 :(得分:1)
要与NULL值进行比较,您需要使用IS NULL:
NULL
IS NULL
select if(fname IS NULL,lname,fname) as name from actor;
或<=>:
<=>
select if(fname <=> null,lname,fname) as name from actor;
在您的示例中,最简单的方法是使用COALESCE:
COALESCE
SELECT COALESCE(fname, lname) AS name FROM actor;