我必须从数据库中提取客户列表,但如果第二个地址字段为空,我想显示文本 None Provided。这是我的查询:
select concat(first_name, " ", last_name) as CustomerName, address,
address2, postal_code
from customer
inner join address
using (address_id);
如果 address2 为空,我想显示“未提供”。我怎么做?我确信答案非常简单,但我脑袋放屁,到处都找不到答案。
好的,这就是我最终的结果:
case when address2=" " or address2 is null then 'None Provided'
else address2 end as address2,
有没有更好的方法来实现这一点?
最佳答案
您可以使用CASE
:
select concat(first_name, " ", last_name) as CustomerName,
address,
case when address2 is null then 'None Provided' else address2 end as address2,
postal_code
from customer
inner join address
using (address_id);
或者更好COALESCE
:
select concat(first_name, " ", last_name) as CustomerName,
address,
COALESCE(address2,'None Provided') as address2,
postal_code
from customer
inner join address
using (address_id);
如果数据包含空字符串或 null,那么我会考虑使用:
select concat(first_name, " ", last_name) as CustomerName,
address,
case
when address2 is null or address2 = ''
then 'None Provided'
else address2 end as address2,
postal_code
from customer
inner join address
using (address_id);
关于mysql - 如何在 sql 查询的空字段中显示文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15231289/