同事做的某系统数据库字段类型设置成了nvarchar,但实际上那个字段存储的数据应该是都是数字(带小数点)格式的数据。抛开SQL查询效率的问题不说,这一列数据用区间筛选时候就非常成问题……
找这些脏数据的时候开始俺比较笨,直接用SELECT [COLUMN]+1 FROM [TABLE]
这种方式,让SQL自动提示无法将列中数据转换成数字类型,然后无法正确执行+1的操作,然后根据提示再去找对应数据……
万幸的是进入数据库的错误数据并不多,仅仅3条记录。
紧急修改完成后搜索了一下,果然SqlServer已经有函数可以判断数据是否数字:ISNUMERIC SELECT * FROM TABLE WHERE ISNUMERIC(COLUMN)=0
幸亏脏数据并不多,否则要感慨下:业务不熟练害死人啊