繁体   English   中英

如何在SQL Server 2008中将字符串转换为整数?

[英]How to convert a string to integer in SQL Server 2008?

我受到SQL Server的挑战。 我有这个简单的查询

SELET * 
FROM mytable
WHERE ISNUMERIC(propertyvalue) = 1 
  AND CONVERT(int, CONVERT(decimal(9, 0), ISNULL(propertyvalue, 0 ))) > 0 

我试图改变转换线

CONVERT(decimal(9, 0), ISNULL(propertyvalue, 0))

CONVERT(decimal(9, 2), ISNULL(propertyvalue, 0))

要么

CAST(ISNULL(propertyvalue, 0) AS numeric)

没有什么我正在努力工作的事情。 我一直收到这个错误

Msg 8114,Level 16,State 5,Line 1
将数据类型varchar转换为数字时出错。

关于如何解决这个问题的任何想法?

EDITED

propertyvalue的类型为varchar(255) ,它有类似的数据

2
1.5
2.1
String
1String 456

我相信你需要在尝试转换之前过滤掉字符串数据:

 SELECT *
 INTO   #temp
 FROM   mytable
 WHERE  propertyvalue NOT LIKE '%[^0-9]%' 

 SELECT *
 FROM   #temp
 WHERE  CONVERT(INT, CONVERT(DECIMAL(9, 0), ISNULL(propertyvalue, 0))) > 0

 DROP TABLE #temp

我认为这与时期有关,它不知道如何转换它。

你试过漂浮吗?

CONVERT(float, ISNULL(propertyvalue, 0 ))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM