Базовый SQL Select в Postgresql не работает - PullRequest
3 голосов
/ 25 мая 2010

Я делаю select * на таблице postgresql, и все выглядит хорошо. Но если я сделаю:

SELECT Name from People

Там написано:

ERROR: column People.Name does not exist
SQL state: 42703
Character: 8

Но столбец имени отображается при выборе *. Я пробовал:

SELECT People.Name from People

также, с тем же результатом. Я что-то пропустил? Это должно быть довольно легко сделать в любой другой базе данных.

Ответы [ 3 ]

2 голосов
/ 25 мая 2010

PostgreSQL преобразует все в нижний регистр.

Если вы попросите об этом:

CREATE TABLE People
{
id SERIAL,
Att1 varchar(100)
-- constraints
};

SELECT Name FROM People;

Вы должны получить всю информацию, потому что pgsql преобразует это в

CREATE TABLE people
{
id SERIAL,
att1 varchar(100),
-- constraints
};

SELECT name FROM people;

Если вы построили таблицу с помощью pgAdmin и создали поле со смешанным регистром, вам нужно будет заключить их в кавычки, чтобы они были успешными, например:

SELECT "Att1" FROM people
2 голосов
/ 25 мая 2010

Попробуйте поставить кавычки вокруг имени столбца, то есть "Имя"

1 голос
/ 25 мая 2010

Name - это ключевое слово, поэтому в этом случае оно может не обрабатываться должным образом. Лучше всего сделать так, чтобы псевдоним таблицы был таким:

SELECT Name from Peoplep

, а затем используйте p для выбора столбца:

SELECTp.Namefrom People p

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...