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