作者:会说话de狗尾草 | 来源:互联网 | 2023-09-24 14:17
我有一个TEXT列,其中包含很多不同的值,有些是数字的,有些不是。我想查找包含大于给定数字的数值的所有行。
我可以使用cast
:
def findAttrValAbove42():
q = db.query(AttrVal)
q = q.filter(cast(AttrVal.value,Numeric) > 42)
return list(q)
问题是当cast
遇到带有“ COOKIEs”之类的值的行时,它将引发错误。因此,我需要一种方法来使cast
在失败时返回默认值,或者另外仅过滤数字值,例如:
def findAttrValAbove42():
q = db.query(AttrVal)
q = q.filter(AttrVal.value.isnumeric())
q = q.filter(cast(AttrVal.value,Numeric) > 42)
return list(q)
但是我找不到任何可以进行过滤的“数字”或“匹配正则表达式”功能。