如何在sql中将不同的数据类型转换为int

时间:2013-01-25 04:50:36

标签: sql sql-server sql-order-by

我在表中有一个nvarchar(200)列,其中包含整数(作为字符串)和非整数字符串和符号的混合。例如。一些样本数据: -

请原谅我输入我提到的varchar(200)的初始帖子,但事实上它是'nvarchar(200)'

02
0
.../
125
00125
/2009
1000
0002589
000.00125

马拉地语编号like& letters

如何订购此列?

4 个答案:

答案 0 :(得分:0)

许多DBMS都有CAST()个函数,您可以将一种数据类型转换为另一种数据类型。

对于MySQL,请查看this site

答案 1 :(得分:0)

如果varchar持有正确的数字,您可以使用CASTvarchar转换为INT

SELECT CAST(varCharCol as Int)

E.g。

col1 as Varchar(10)

col1 = '100'转换为INT将是successufl

但是如果col1 = '100 xyz'在此过程中不成功。

查看您的字符串,您可能需要使用LTRIMREPLACE的数字来获取数字或使用正则表达式来获取逗号分隔的数字。那也不是很清楚原始字符串的样子。

答案 2 :(得分:0)

您可以使用 CAST和转换将字符串类型值转换为int类型。但请确保该值应为数字。

select convert(int,'123')

select CAST('123' as int)

答案 3 :(得分:0)

您可以使用此查询

SELECT CASE
WHEN ISNUMERIC(colName)=1 THEN ROUND(colName, 0) ELSE 0 END AS [colName]
FROM tblName