如果我做得对:
WHERE CAST(SUBSTRING(Description,3,CHARINDEX('K',Description)-3) AS INT) BETWEEN 10 and 40
SQL Fiddle demo
假设您对此答案的评论没有修复第一个位置,所以在这种情况下您应该在MSSQL中使用PATINDEX()函数:
WHERE CAST(SUBSTRING(Description, PATINDEX('%[0-9]%',Description), PATINDEX('%[0-9]K%',Description)- PATINDEX('%[0-9]%',Description)+1) AS INT) BETWEEN 10 and 40
SQLFiddle demo
如果我做得对:
WHERE CAST(SUBSTRING(Description,3,CHARINDEX('K',Description)-3) AS INT) BETWEEN 10 and 40
SQL Fiddle demo
假设您对此答案的评论没有修复第一个位置,所以在这种情况下您应该在MSSQL中使用PATINDEX()函数:
WHERE CAST(SUBSTRING(Description, PATINDEX('%[0-9]%',Description), PATINDEX('%[0-9]K%',Description)- PATINDEX('%[0-9]%',Description)+1) AS INT) BETWEEN 10 and 40
SQLFiddle demo