ID Description
51 SY10K40F
18 SY20K40F
12 SY30K40F
28 SY40K40F
34 SY100K40H
35 SY240K40H
36 SY300K40H
Run Code Online (Sandbox Code Playgroud)
我必须只选择那些描述范围的id 10K to 40K
.
注意 - Id是主键,从描述中我们得到10k,20k等.
如果我做得对:
WHERE
CAST(SUBSTRING(Description,3,CHARINDEX('K',Description)-3) AS INT)
BETWEEN 10 and 40
Run Code Online (Sandbox Code Playgroud)
假设您对此答案的评论没有修复第一个位置,所以在这种情况下您应该在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
Run Code Online (Sandbox Code Playgroud)