sql - 选择除某些 PostgreSQL 之外的所有列
问题描述
我必须比较表,但有些列我不需要比较,我只知道它们(不是我必须比较的列)所以我想从表中选择所有列,除了我不需要的列比较。
我想到了类似的东西:
SELECT 'SELECT ' || array_to_string(ARRAY(SELECT 'o' || '.' || c.column_name
FROM information_schema.columns As c
WHERE table_name = 'office'
AND c.column_name NOT IN('id', 'deleted')
), ',') || ' FROM officeAs o' As sqlstmt
但是输出SELECT * FROM office As o
不是select a,b,c from office
没有id and deleted
列。
有谁知道这个查询有什么问题?
解决方案
这有效:
CREATE TABLE public.office(id INTEGER, a TEXT, b TEXT, deleted BOOLEAN, c TEXT)
然后:
SELECT 'SELECT ' || STRING_AGG('o.' || column_name, ', ') || ' FROM office AS o'
FROM information_schema.columns
WHERE table_name = 'office'
AND table_schema = 'public'
AND column_name NOT IN ('id', 'deleted')
结果:
SELECT o.a, o.b, o.c FROM office AS o
推荐阅读
- python - win10上的tensorflow-gpu安装问题
- javascript - 为什么 .charCodeAt() 不能确保您可以在此 Javascript 算法中找到丢失的字母?
- javascript - react中的自定义排序
- talend - Talend - 如何禁用检查额外功能?
- python - 无法通过烧瓶从 MySQL 检索数据
- java - AST 视图:Eclipse 插件不显示 ATS 的节点并显示不支持的 JLS
- tensorflow - 当我在 jupyter 中导入 tensorflow 时弹出以下错误
- powerbi - Power Query 或 Power BI - 如果单元格为空白,则从所述单元格上方最近的行中复制值
- json - 如何仅在响应中的 onclick 事件后映射 json 列表?
- centos7 - 如何解决 yum update 上的 multilib 问题?