将varchar转换为int的方法是更好的sql

时间:2014-02-11 14:18:46

标签: sql sql-server

我有一个导入表,所有列都以VARCHAR的形式出现。

其中一列如下:

strSomeValue
------------
 1000.0000
 50000.0000
 4151.0000

依此类推,依旧是0的4位小数。

我将其转换为整数列,并想知道最佳方式(最有效)。

到目前为止我已经有三个了:

CAST(CAST(strSomeValue as decimal(19,2)) as int)

CAST(SUBSTRING(strSomeValue , 1, CHARINDEX('.', strSomeValue ) - 1) AS INT)

CAST(ROUND(strSomeValue,0) as int)

到目前为止,我认为使用ROUND的第3种方法是最好的,基于我对客户统计数据的非常有限的了解。

我想知道是否有更好的方法,以及快速确定哪个查询更快的最佳方法是什么?客户统计是唯一/最佳方式,还是有更好的方法来分析这样的简单事情?

1 个答案:

答案 0 :(得分:0)

您实际上可以使用Floor功能来完成此任务。

SELECT FLOOR(strSomeValue)