首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将VARIADIC参数传递到IN中

将VARIADIC参数传递到IN中
EN

Stack Overflow用户
提问于 2018-01-11 14:17:53
回答 1查看 921关注 0票数 1

我正在尝试构建一个Postgres函数,它以表名作为变量参数并输出查询,返回来自information_schema的select字符串,如

代码语言:javascript
运行
复制
SELECT *
FROM table1 
UNION 
SELECT *
FROM table2

到目前为止,我做了以下几点:

代码语言:javascript
运行
复制
CREATE OR REPLACE FUNCTION query_tables(VARIADIC list text[])
    RETURNS text
AS $$
DECLARE
    qry TEXT;
BEGIN
    SELECT string_agg(
        format('SELECT *
            FROM %1$I', table_name),
        ' UNION ')
    INTO qry
    FROM information_schema.tables
    WHERE table_schema = 'public'
          AND table_name IN (list);

    return qry;
END;
$$

所以它可以被称为SELECT * FROM query_tables('table1','table2');

但是,我被困在IN (list)中,无法在IN()中传递这个可变参数。

有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-11 14:25:20

若要使用数组,请更改

table_name IN (list)table_name = ANY (list)

https://www.postgresql.org/docs/current/static/functions-comparisons.html

表达式运算符任意(数组表达式)

还有:https://stackoverflow.com/a/31192557/5315974

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48209168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档