如何用PyPika生成带表别名的UNNEST查询语句?
解决PyPika生成带别名的unnest SQL问题
要生成带表别名和列别名的unnest查询,只需在unnest函数调用后添加.as_()方法指定别名即可,修改后的代码如下:
from pypika import PostgreSQLQuery, Array, CustomFunction unnest = CustomFunction('unnest', ['array']) # 为unnest结果指定表别名t和列别名x query = PostgreSQLQuery.from_( unnest(Array(1,2,3)).as_('t("x")') ).select('x') print(query.get_sql())
执行后生成的SQL语句:
SELECT "x" FROM unnest(ARRAY[1,2,3]) AS t("x")
说明
.as_('t("x")')直接生成了AS t("x")的别名语法,既指定了表别名t,也为返回的列指定了别名x,满足后续子查询中引用x的需求。- 该写法兼容Athena/Presto和PostgreSQL的语法规范。
内容的提问来源于stack exchange,提问作者rupello
相关产品推荐
相关产品推荐

