我需要从数据库表中获取固定长度的值。以下是查询当选择查询固定长度返回空值时显示零值
select cast(TrackID as char(4)) as TrackID ,
cast(Tracknumber as char(5)) as Tracknumber
from Tracking
我想显示相同数量的零时列值为空或空。
TrackID -- TrackNumber 2121 -- 34343 3423 -- 00000
我需要从数据库表中获取固定长度的值。以下是查询当选择查询固定长度返回空值时显示零值
select cast(TrackID as char(4)) as TrackID ,
cast(Tracknumber as char(5)) as Tracknumber
from Tracking
我想显示相同数量的零时列值为空或空。
TrackID -- TrackNumber 2121 -- 34343 3423 -- 00000
只是这样做......
select cast(TrackID as char(4)) as TrackID ,
isnull(nullif(cast(Tracknumber as char(5)),''),'00000') as Tracknumber
from Tracking
您可以使用coalesce()
/case
:需要
select cast(TrackID as char(4)) as TrackID ,
coalesce(cast(Tracknumber as char(5)), '00000') as Tracknumber
from Tracking;
演员这样的结果是一个字符串,而不是数字。
如果不是“NULL
”,“数字”不能为“空”。如果该值确实是一个字符串,那么你需要稍微更复杂的逻辑:
select cast(TrackID as char(4)) as TrackID ,
(case when Tracknumber is null or Tracknumber = ''
then '00000'
else cast(Tracknumber as char(5))
end) as Tracknumber
from Tracking;
谢谢@Ravi,它工作 – Abdul