0

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

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

它返回一切。

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

4

1 回答 1

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))

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

于 2012-09-21T16:11:10.670 回答