如何在SQL Server 2005上使用SQL查询将字符串转换为整数?
当前回答
试试这个,我在《Athena》中就用过:
cast(MyVarcharCol as integer)
其他回答
试试这个,我在《Athena》中就用过:
cast(MyVarcharCol as integer)
还要注意,当从数字字符串如“56.72”转换为INT时,您可能会遇到SQL错误。
Conversion failed when converting the varchar value '56.72' to data type int.
为了解决这个问题,只需做两个转换如下:
字符串-> numeric -> int
or
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
当从TableA复制数据到TableB时,转换是隐式的,所以你不需要第二次转换(如果你喜欢四舍五入到最近的INT):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
你可以使用CAST或CONVERT:
SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table
从SQL Server 2012开始,您可以使用TRY_PARSE或TRY_CONVERT。
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)
推荐文章
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 为什么我不能在DELETE语句中使用别名?
- 在SQL Server Management Studio中保存带有标题的结果
- "where 1=1"语句
- 如何选择一个记录和更新它,与一个单一的查询集在Django?
- 多语句表值函数vs内联表值函数
- 如何从Oracle的表中获取列名?
- NOLOCK提示在SELECT语句中的作用
- SQL OVER()子句-它什么时候有用,为什么有用?
- 如果字段在MySQL中为空,则返回0
- 我如何使用ROW_NUMBER()?
- SQL或者TSQL是图灵完备的吗?
- 如何检查表上持有哪些锁