问题
一个varchar列,里面的内容有字符例如slkdjg,dkyiu等等,有数字,现在想对此列进行数值大小的比较例如
select * from table1 where field1>20
方法
如果字符串中只有一个连续的整数数字子串,则
where cast(substring
(field1,
patindex('%[0-9]%',field1),
len(field1)-patindex('%[0-9]%',field1)-patindex('%[0-9]%',reverse(field1))+2)
as int)>20
解释
先将整数数字子串截取出来然后转成 int 类型再进行比较