是否可以在sqlalchemy中搜索字符串上的范围

时间:2012-09-20 18:25:30

标签: sql sql-server string sqlalchemy range

我有一个HOUSENUM作为字符串的表。数字可以是200或200A(带有apt。字母的数字)。我需要使用一系列门牌号来过滤表中的结果,即。 100-450。 刚开始我尝试了:

request=request.filter(table.HOUSENUM.between ('100', '450'))

返回所有内容。

添加到该号码的字母使其更具挑战性。知道如何获得范围之间的所有数字?

1 个答案:

答案 0 :(得分:0)

我无法在sqlalchemy中执行我想要的操作,因此我使用以下代码库在MSSQL的表中添加了一列:

Declare @X     varchar(100)
Select     @X=    '11AA'

select 
cast(
case  
    WHEN @x NOT LIKE '%[0-9]%'   THEN 0 --Needed to check if accidental letters only
    when SubString(@X,0,PATINDEX('%[^0-9]%',@X))> 0  --returns 0 if no letters after number
    then SubString(@X,0,PATINDEX('%[^0-9]%',@X))  -- returns just numbers if letters after number
    else @X
end
  as int)
     as number 

--// shows result '11'

如果您在数字前面有字母,可以使用以下方法在数字前删除字母:SubString(@ X,PATINDEX('%[0-9]%',@ X),Len(@X))< / p>

来自帖子:http://forums.asp.net/post/1035324.aspx