如何将nvarchar转换为int

问题描述 投票:1回答:2

我需要根据保存数字的nvarchar列获取数据,出现此错误:将nvarchar值“ 362X”转换为数据类型int时,转换失败。我试过了:

select  modelcode from model 
where  cast(modelcode as int )> 10000 - ERROR
where  cast(modelcode as bigint )> 10000 - ERROR
where  pws_modelcode+0 > 10000 - ERROR
order by ModelCode asc

我想念什么?

sql sql-server casting converters
2个回答
0
投票

在SQL Server中,您可以使用try_convert()try_cast()

where try_cast(modelcode as int) > 10000

在其他数据库中,可以将case与正则表达式一起使用:

where (case when modelcode ~ '^[0-9]+$' then cast(modelcode as int) end) > 10000

0
投票

用负号替换除负号以外的所有非数字字符,然后转换为INT。

select  modelcode from model where  cast(REGEXP_REPLACE(modelcode,'^0-9-','') as int )> 10000 
© www.soinside.com 2019 - 2024. All rights reserved.