小编tej*_*eja的帖子

验证小数点前三位和小数点后六位

我有nvarchar 数据类型的经度纬度列。用户可以输入类似 (23.23424432),(432423.343) 的内容,这是不允许的。

谁能帮我在 SQL Server 中验证这一点?

  • 用户可以输入的数据:例如:0, 12, 101.0, 111.022222
  • 用户无法输入的数据:例如:1111、111.2222222、1234.1111

它应该只接受这种格式:(232.343244)

下面的代码接受任何数字:

 + CASE WHEN (CAST(A.GPS_LATITUDE AS NVARCHAR) IS NOT NULL AND CAST(A.GPS_LATITUDE AS NVARCHAR) <>'' AND CAST(A.GPS_LATITUDE AS NVARCHAR) NOT LIKE'%*%') 
AND ISNUMERIC(CAST(A.GPS_LATITUDE AS NVARCHAR)+'e0') = 0 OR (LEN(A.GPS_LATITUDE)>20)
 THEN 'Invalid Latitude. ' ELSE '' END
+ CASE WHEN (CAST(A.GPS_LONGITUDE AS NVARCHAR) IS NOT NULL AND CAST(A.GPS_LONGITUDE AS NVARCHAR) <>'' AND CAST(A.GPS_LONGITUDE AS NVARCHAR) NOT LIKE'%*%')
AND ISNUMERIC(CAST(A.GPS_LONGITUDE AS NVARCHAR)+'e0') = …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2 data-validation

3
推荐指数
1
解决办法
2836
查看次数