我正在使用SQL Server 2008。
我发现LEN函数在整数没有值时计算整数时不会返回零 - 它返回1。
例如:
declare @int1 int
set @int1 = ''
select LEN(@int1)
返回1而不是零!但是整数是零长度的!
这是为什么?这是一个错误吗?
答案 0 :(得分:6)
INT没有长度。这就是你实际做的......
''
0
'0'
结果是你的LEN函数没有在''上调用,但实际上是在'0'上调用,其长度为1。
答案 1 :(得分:2)
你应该为整数指定NULL,以表示“我没有价值”
类似的东西:
declare @int1 int
set @int1 = null
select @int1
union
select LEN(isnull(cast(@int1 as varchar),''))
返回
NULL
0
答案 2 :(得分:1)
int1将初始化为'0',因此它返回正确的结果:
declare @int1 int set @int1 = ''
select @int1
select LEN(@int1)
返回:
0
1