PostgreSQL:选择所有字段,过滤一些

Ada*_*tan 2 sql postgresql geometry

在我们的一个数据库中,有一个包含数十列的表,其中一列是几何列.

我想SELECT从表中的行,几何转换为另一个SRID.我想使用类似的东西:

`SELECT *`
Run Code Online (Sandbox Code Playgroud)

为了避免:

SELECT col_a, col_b, col_c, col_d, col_e, col_f, 
       col_g, col_h, transform(the_geom, NEW_SRID), ..., col_z
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

亚当

pyr*_*lus 5

所以问题是查询中SELECT子句的长度是多少?嗯,我想你可以考虑做:

SELECT *, transform(the_geom, NEW_SRID) as newsrid
Run Code Online (Sandbox Code Playgroud)

这显然很短.但是,这意味着每行都会获得两次列值'the_geom'.

编辑:我想强调,虽然我并不是说我喜欢做'SELECT*'.无论我从表中选择多少列,我总是明确说明名称.这就带来了另一个问题:'显式命名所有列有什么问题?'.

编辑2:好的,所以你在选择的表格中有60列.我知道这是很多打字工作,但同样,问题是什么?这只是一次性问题.可能有DB管理程序甚至可以为您生成查询.至少我们使用的软件可以.

使用外卡不是好习惯,至少在这种情况下不行.维护起来并不容易,因为在编程环境中,您无法看到列的列表.您将始终必须通过数据库管理程序进行检查.我希望你不要通过索引访问列?喜欢:

object columnvalue = row[21];
Run Code Online (Sandbox Code Playgroud)

因为这与外卡相结合,将使您的程序成为一个真正的地狱维护.实际上,即使花费更多时间进行编程,最终在查询中命名列也会有所回报.