使用“select trim”时如何避免postgresql更改列名

Posted

技术标签:

【中文标题】使用“select trim”时如何避免postgresql更改列名【英文标题】:How to avoid postgresql from changing column names when using "select trim" 【发布时间】:2015-11-30 17:34:58 【问题描述】:

我在PostgreSql version 9.3 中运行以下查询(我正在使用PgAdmin III):

Select trim(both ' ' from column1) from myTable

它返回我想要的数据,但它还将列名从'column1' 重命名为'btrim'。我需要原始列名,因为我正在使用 Java 应用程序中的此查询。这种重命名发生在我使用 Trim 函数的所有列上,无论我是直接在 pgAdmin 中还是通过我的 postgres jdbc driver 运行查询(这就是为什么我认为问题出在 postgres 本身)。

使用Trim函数时,如何获取数据和列的正确名称?

【问题讨论】:

【参考方案1】:

使用列别名:

Select trim(both ' ' from column1) AS column1 
from myTable

SqlFiddleDemo

如果您需要区分大小写的别名,您需要用 " 引用它们。

Idenfifiers:

引用标识符也使其区分大小写,而未引用 名称总是折叠成小写。例如,标识符 PostgreSQL 认为 FOO、foo 和 "foo" 相同,但 "Foo" 和“FOO”与这三个和彼此不同。 (折叠 在 PostgreSQL 中将不带引号的名称转换为小写与 SQL 标准,它说不带引号的名称应该折叠到大写 案子。因此,foo 应该等价于 "FOO" 而不是 "foo" 根据 标准。如果你想编写可移植的应用程序,你是 建议始终引用特定名称或从不引用它。)

【讨论】:

它在 pg Admin 和我的 jdbc 驱动程序中都有效:D 只是一点细节:postgre 坚持在别名时只使用小写字母,因为有大写字母,查询将是: Select trim(both ' ' from column1 ) 作为 myTable 中的“Column1”

以上是关于使用“select trim”时如何避免postgresql更改列名的主要内容,如果未能解决你的问题,请参考以下文章

VBA如何在使用许多整数时避免递归

[在使用 PyVirtualDisplay 时] 如何避免挂起 Xvfb 进程?

使用 gwt dto 时如何避免使用异步类?

使用pow时如何避免浮点异常? [关闭]

使用firebase创建新用户时如何避免自动登录[重复]

如何在使用 CGImageDestinationFinalize 时避免 malloc