use*_*865 4 t-sql sql-server-2008
Duration = isnull(FunctionA(DateA,DateB),'')
Run Code Online (Sandbox Code Playgroud)
上面的函数计算天数,如果day为null,则显示值0而不是空值
如何将上面的代码更改为显示空白而不是0表示null?
如果函数返回一个整数,则结果isnull也将是一个整数.在返回值为的情况下,null您将隐式转换为''的整数,并且将为0.
试试这个:
declare @xx int
select isnull(@xx,'')
Run Code Online (Sandbox Code Playgroud)
结果:
-----------
0
Run Code Online (Sandbox Code Playgroud)
如果您首先从函数转换返回值,则可以拥有空间varchar.
declare @xx int
select isnull(cast(@xx as varchar(10)),'')
Run Code Online (Sandbox Code Playgroud)
结果:
----------
.
Run Code Online (Sandbox Code Playgroud)
如果你的函数返回0而不是null你可以nullif在转换之前使用获取null值varchar.
declare @xx int = 0
select isnull(cast(nullif(@xx, 0) as varchar(10)),'')
Run Code Online (Sandbox Code Playgroud)
摘要:
你需要这个:
Duration = isnull(cast(FunctionA(DateA,DateB) as varchar(10)),'')
Run Code Online (Sandbox Code Playgroud)
或这个
Duration = isnull(cast(nullif(FunctionA(DateA,DateB), 0) as varchar(10)),'')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19242 次 |
| 最近记录: |