我有一个SQL Server脚本
Declare @int Int
Set @int = 0
select case when @int = '' Then NULL Else @int End
但输出显示NULL而不是0.如何获得正确的输出?
答案 0 :(得分:3)
空字符串被隐式转换为零,因此返回NULL。这就是SQL服务器的工作方式。
Declare @int Int
Set @int = 0
select case when @int = '1' Then NULL Else @int End
例如,如果您将字符串更改为' 1',则输出将按预期为0。
答案 1 :(得分:0)
使用ISNULL函数,如果找到null则使用,然后可以设置任何默认值
Declare @int Int
Set @int = 0
select case when @int = '' Then 0 Else @int End
or
Declare @int Int
Set @int = 0
select isnull (case when @int = '' Then NULL Else @int End , 0) columnname
答案 2 :(得分:-1)
将支票交给Ihor
空Int''被分配0
试试这个
declare @empty Int
set @empty = ''
select @empty
@int =''为真,因为''是赋值0