使用“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更改列名的主要内容,如果未能解决你的问题,请参考以下文章