且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在varchar列中选择项目范围(SQL Server)

更新时间:2022-12-03 23:16:13

首先,您需要创建一个函数,该函数将从NUMBER中删除所有非数字字符并返回浮点数(或整数),如下所示:>

First, you need to create a function which will strip all non-numeric characters from your NUMBER and return a float (or int), like so:

create function dbo.RemoveAlpha(@str varchar(1000))
returns float
AS
begin
    while patindex('%[^0-9]%', @str) > 0
    begin
        set @strText = stuff(@str, patindex('%[^0-9]%', @str), 1, '')
    end
    return convert(float, @str)
end

然后,您可以像这样重写查询:

Then your can rewrite your query like so:

SELECT TE.DESC 
FROM PRODUCT P, ETYPE TE 
WHERE ( P.IDTYPE = TE.IDTYPE )
AND dbo.RemoveAlpha(P.NUMBER) BETWEEN 619 AND 623