我在表中有一个nvarchar(200)
列,其中包含整数(作为字符串)和非整数字符串和符号的混合。例如。一些样本数据: -
请原谅我输入我提到的varchar(200)的初始帖子,但事实上它是'nvarchar(200)'
02
0
.../
125
00125
/2009
1000
0002589
000.00125
如何订购此列?
答案 0 :(得分:0)
许多DBMS都有CAST()
个函数,您可以将一种数据类型转换为另一种数据类型。
对于MySQL,请查看this site
答案 1 :(得分:0)
如果varchar持有正确的数字,您可以使用CAST
将varchar
转换为INT
。
SELECT CAST(varCharCol as Int)
E.g。
col1 as Varchar(10)
col1 = '100'
转换为INT将是successufl
但是如果col1 = '100 xyz'
在此过程中不成功。
查看您的字符串,您可能需要使用LTRIM
,REPLACE
的数字来获取数字或使用正则表达式来获取逗号分隔的数字。那也不是很清楚原始字符串的样子。
答案 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