如何选择在特定列中具有非整数值的记录?
我试着像:
SELECT * FROM tableName WHERE status !~ '^\d+?\$'
我想找到所有没有存储精确整数表示的记录。
Column | Type | Modifiers
------------+-----------------------+-----------
status | charecter varying(25) |
如何选择在特定列中具有非整数值的记录?
我试着像:
SELECT * FROM tableName WHERE status !~ '^\d+?\$'
我想找到所有没有存储精确整数表示的记录。
Column | Type | Modifiers
------------+-----------------------+-----------
status | charecter varying(25) |
2条答案
按热度按时间ffdz8vbo1#
由于您正在寻找非整数值,如果状态包含任何不是数字的值(即一个字母,小数点等),它不是整数,所以这个正则表达式应该工作:
请注意反斜杠的双转义和否定字符类的使用。
这是一把小提琴。
34gzjxbg2#
Postgres使用 signed
integer
,我们需要允许一个可选的前导减号或加号(+-
)。无效作为整数文字:请注意,允许并修剪前导和尾随空格,但不允许嵌套空格。
fiddle
老小提琴