从sql字符串范围中获取一个数字

Geo*_*off 2 sql-server

我有一列数据包含一个百分比范围作为字符串,我想转换为一个数字,所以我可以做简单的比较.

字符串中可能的值:

'<5%'
'5-10%'
'10-15%'
...
'95-100%'
Run Code Online (Sandbox Code Playgroud)

我想在我的select where子句中将它转换为第一个数字,5,10,15等,以便我可以将该值与传入的"至少此"值进行比较.

我已经在子串,charindex,转换和替换上尝试了一些变体,但我似乎仍然无法获得适用于所有组合的东西.

有任何想法吗?

Mar*_*tin 5

试试这个,

SELECT substring(replace(interest , '<',''), patindex('%[0-9]%',replace(interest , '<','')), patindex('%[^0-9]%',replace(interest, '<',''))-1) FROM table1 
Run Code Online (Sandbox Code Playgroud)

在我的测试结果并且它有效,它只是我的第一次尝试,所以你可能能够优化它.