Sto*_*der 5 python postgresql sqlalchemy
我想用 SQLAlchemy 翻译以下查询,但我在文档中没有找到有关此主题的任何内容。
SELECT * FROM table_persons, jsonb_array_elements(data->'persons') WITH ORDINALITY as persons (data, n);
Run Code Online (Sandbox Code Playgroud)
其中数据列具有 JSONB 类型。
截至 2021 年 7 月更新
SQLAlchemy 1.4 引入了表值函数,支持WITH ORDINALITY.
对于问题中的例子:
SELECT *
FROM
table_persons
, jsonb_array_elements(data->'persons') WITH ORDINALITY AS persons (data, n)
Run Code Online (Sandbox Code Playgroud)
相应的 SQLAlchemy 代码是
person_elements = (
func.jsonb_array_elements(table_persons.c.data["persons"])
.table_valued("data", with_ordinality="n", name="persons")
.render_derived()
)
query = select(table_persons, person_elements)
Run Code Online (Sandbox Code Playgroud)
调用render_derived是列出别名中的各个列名称。
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |