在SQL中显示Null Ids的'Unknown'

时间:2017-11-30 11:34:56

标签: sql

当数字字段为空时如何显示字符串值?尝试下面的语法,但收到错误

  

'将数据类型varchar转换为数字'时出错:

语法:

select 
case 
when bill_area_id IS null then 'Unknown'
else bill_area_id end  from Table_name

3 个答案:

答案 0 :(得分:1)

使用coalesce返回第一个非空值:

select coalesce(bill_area_id, 'Unknown') from Table_name

请注意,需要兼容的数据类型。即你可能不得不这样做:

select coalesce(cast(bill_area_id as varchar(15)), 'Unknown') from Table_name

答案 1 :(得分:0)

如果您使用sql server,也可以使用此功能:

select isnull(cast(bill_area_id as varchar(15)), 'Unknown') from Table_name

答案 2 :(得分:0)

错误是因为您在同一列中将varchar与数字输出混合在一起。例如,对于SQL Server:

select 
case 
when bill_area_id IS null then 'Unknown'
else CAST(bill_area_id as varchar) end  from Table_name

确保输出是统一的varchar,因为我将bill_area_id作为varchar进行投射,或者选择“未知”' (也是一个varchar)。

这里有其他答案使用COALESCE / isnull同样有效,因为这些函数提供了NULL值的替代方法。