我有一个HOUSENUM作为字符串的表。数字可以是200或200A(带有apt。字母的数字)。我需要使用一系列门牌号来过滤表中的结果,即。 100-450。 刚开始我尝试了:
request=request.filter(table.HOUSENUM.between ('100', '450'))
返回所有内容。
添加到该号码的字母使其更具挑战性。知道如何获得范围之间的所有数字?
答案 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>