在Postgres数据库中,我有一个字段def ff = session.get()
if(!ff) return
def text = session.read(ff).withStream{ it.getText("UTF-8") }
//do here something with text...
session.transfer(ff, REL_SUCCESS)
定义如下:
field
我存储的值如下:
CREATE TABLE t (
id SERIAL PRIMARY KEY,
field character varying(255)[] DEFAULT ARRAY[]::character varying[],
);
1 - 如何选择较低/较高的值?我喜欢这样的查询回复:
ID FIELD
1 {{lower,0},{greater,10}}
2 {{something_else,7},{lower,5}}
2 - 如何按较低/较高值过滤?
谢谢!
答案 0 :(得分:1)
这样做很尴尬,但这可以实现它。我使用的是PG 9.3,所以我不知道在以后的版本中是否有更好的方法可以做到这一点。
SELECT id, (SELECT field[ss][2] FROM generate_subscripts(field, 1) ss WHERE field[ss][1] = 'lower') AS lower
FROM t;
基本上,对于每条记录,生成用作主数组索引的下标以访问子数组。对于每个,请查找第一个项目为' lower'的数组。如果找到,则返回第二个项目的值。