2015-11-30 3 views
2

я бегу следующий запрос в моей PostgreSql version 9.3 (я использую PgAdmin III):Как избежать PostgreSQL изменять имена столбцов при использовании «выберите облицовку»

Select trim(both ' ' from column1) from myTable 

он возвращает данные, которые я хочу, но это также переименовывает имя столбца от 'column1' до 'btrim'. Мне нужно исходное имя столбца, потому что я использую этот запрос из приложения Java. Это переименование происходит со всеми столбцами, где я использую функцию Trim, независимо от того, запускаю ли я запрос непосредственно в pgAdmin или через мой postgres jdbc driver (вот почему я думаю, что проблема в самих постгресах).

Как я могу получить данные и столбцы с их правыми именами при использовании функции Trim?

ответ

1

Использование колонки псевдонимами:

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

SqlFiddleDemo

Если вам нужен чувствителен к регистру псевдонимов вы должны процитировать их ".

Idenfifiers:

Цитирование идентификатор также делает его чувствительны к регистру, тогда как неупомянута имена всегда сложены в нижний регистр. Например, идентификаторы FOO, foo и «foo» считаются одинаковыми по PostgreSQL, но «Foo» и «FOO» отличаются от этих трех и друг друга. (Складывание некотируемых имен в нижнем регистре в PostgreSQL несовместимо с стандартом SQL , в котором говорится, что неупомянутые имена должны быть свернуты в верхний регистр . Таким образом, foo должен быть эквивалентен «FOO» не «foo» в соответствии с . стандарт Если вы хотите писать переносимые приложения, которые советуют не всегда процитировать конкретное имя или никогда не цитировать)

+1

Он работает как в пге Администратор и мой водитель JDBC.: D Просто маленькая деталь: Postgre настаивают при использовании только нижних регистров при сглаживании, для того, чтобы иметь верхние регистры, запрос будет: Выберите отделку (оба «из столбца1) AS« Столбец1 » из myTable –

+0

@Broken_Window Хорошая точка, обновленный мой ответ – lad2025

Смежные вопросы