3 Stimmen

Basic SQL Select in Postgresql schlägt fehl

Ich führe ein select * in einer Postgresql-Tabelle aus, und alles sieht gut aus. Aber wenn ich tun:

SELECT Name from People

Dort steht:

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

Aber die Namensspalte wird bei select * angezeigt. Ich habe es versucht:

SELECT People.Name from People

ebenfalls mit demselben Ergebnis. Habe ich etwas übersehen? Es sollte ziemlich einfach sein, dies in jeder anderen Datenbank zu tun.

2voto

SqlACID Punkte 4018

Versuchen Sie, den Spaltennamen in Anführungszeichen zu setzen, z. B. "Name".

2voto

George Silva Punkte 3364

PostgreSQL konvertiert alles in Kleinbuchstaben.

Wenn Sie danach fragen:

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

SELECT Name FROM People;

Sie sollten alle Informationen erhalten, denn pgsql konvertiert dies in

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

SELECT name FROM people;

Wenn Sie Ihre Tabelle mit pgAdmin erstellt haben und Felder mit gemischtem Gehäuse erstellt haben, müssen Sie sie in Anführungszeichen setzen, um erfolgreich zu sein, etwa so:

SELECT "Att1" FROM people

1voto

akf Punkte 37387

Name ist ein Schlüsselwort, so dass es in diesem Fall möglicherweise nicht gut behandelt werden kann. Am besten wäre es, die Tabelle wie folgt zu aliasieren:

SELECT Name from Peoplep

und verwenden Sie dann die p um die Spalte auszuwählen:

SELECTp.Namefrom People p

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X