为什么ISNUMERIC()在SQL server中将一个varchar数据类型的Zip Code声明为数字



根据我的理解,我可能错了,但如果我们看到的是数字数据类型,ISNUMERIC((不是会返回1吗?既然大多数邮政编码都保存为varchar数据类型,那么它不应该返回0吗?我查阅了文件,上面对我说,我在这里缺了什么?我知道邮政编码是数字,但因为它们被保存为字符串,这难道没有区别吗?提前谢谢。

ISNUMERIC()专门研究字符串,而不是已经存储为数字的东西。

但是,我不建议使用它。例如,'3.1e5'被认为是数字。

相反,使用try_convert():

try_convert(int, zip)

如果无法转换列,则返回NULL

最新更新