当数字字段为空时如何显示字符串值?尝试下面的语法,但收到错误
'将数据类型varchar转换为数字'时出错:
语法:
select
case
when bill_area_id IS null then 'Unknown'
else bill_area_id end from Table_name
答案 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值的替代方法。