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 に答える