加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – SQL:SELECT除了一些列之外的所有列

发布时间:2020-12-13 16:20:13 所属栏目:百科 来源:网络整理
导读:有没有办法选择表中的所有列,除了特定的列?从表中选择所有非blob或非几何列非常方便. 就像是: SELECT * -the_geom FROM segments; 我曾经听说过这个功能是故意排除在SQL standard之外的,因为更改向表中添加列会改变查询结果.这是真的?论证有效吗? 有没有
有没有办法选择表中的所有列,除了特定的列?从表中选择所有非blob或非几何列非常方便.

就像是:

SELECT * -the_geom FROM segments;

>我曾经听说过这个功能是故意排除在SQL standard之外的,因为更改向表中添加列会改变查询结果.这是真的?论证有效吗?
>有没有解决方法,特别是在PostgreSQL中?

Postgres和SQL Standard(AFAIK)都没有这样的功能.我认为这是一个非常有趣的问题所以我用Google搜索了一下,并在 postgresonline.com上看到了一篇有趣的文章.

它们显示了一种直接从模式中选择列的方法:

SELECT 'SELECT ' || array_to_string(ARRAY(SELECT 'o' || '.' || c.column_name
        FROM information_schema.columns As c
            WHERE table_name = 'officepark' 
            AND  c.column_name NOT IN('officeparkid','contractor')
    ),',') || ' FROM officepark As o' As sqlstmt

你可以创建一个类似的功能.这些主题也在邮件列表中进行了讨论,但总体共识几乎相同:查询架构.

我确信还有其他解决方案,但我认为它们都会涉及某种神奇的架构 – 查询 – foo.

顺便说一句:小心SELECT * …因为这会有性能损失

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读