+ ,- (加号,减号) 是数字类型吗?(sql server 2000中)
今天调试存储过程,发现了一个奇怪的问题,大家都知道的函数 isnumeric 它的用途是:确定表达式是否为一个有效的数字类型,可我用 isnumeric('+') 得到的结果却是 1 ,也就是说 + 为数字类型 ,后来我又试了一下减号 - 它也得到了同样的结果,百思不得其解,后来就想如果它们是数字类型,那么它们是多少呢,我就转化了一下 convert(int,'+') 得到的结果是0,convert(int,'-') 得到的也是零,奇怪,为啥是这样子的呢?sql server 联机帮助上也没有说明这一点呀,后来又试了一下其它的运算符,除了这加号和减号外,其它的都不是数字类型(也许还有,我还没有发现),这难道是sql server2000中的bug吗?(也许这根本就不是个问题)
大家可以在sql server2000的查询分析器中运行一下:
print(isnumeric('+'))
print(isnumeric('-'))
print(convert(int,'+'))
print(convert(int,'-'))
结果是:
1
1
0
0
大家可以在sql server2000的查询分析器中运行一下:
print(isnumeric('+'))
print(isnumeric('-'))
print(convert(int,'+'))
print(convert(int,'-'))
结果是:
1
1
0
0