微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

有没有办法选择表中的所有列,除了特定的列?从表中选择所有非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 * …因为这会有性能损失

原文地址:https://www.jb51.cc/postgresql/192242.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐