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