Gibt es eine Möglichkeit, die einzelnen Attribute einer benutzerdefinierten typisierten Spalte in PostgreSQL über einen Tabellenalias auszuwählen? Ohne einen Tabellenalias zu verwenden, funktioniert das Umbrechen des Spaltennamens in Parens einwandfrei. Sobald ein Tabellenalias eingeführt wird, schlägt meine Abfrage mit einem Syntaxfehler fehl.Wie wählen Sie Attribute eines benutzerdefinierten Typs über einen Tabellenalias aus?
Ich habe den Postgres docs abgekocht und nicht in der Lage, etwas zu finden darstellen, wie dies zu erreichen. Sicherlich ist das möglich?
CREATE TYPE test_type AS (
some_text TEXT,
some_number INTEGER
);
CREATE TABLE test_table (
id SERIAL PRIMARY KEY,
some_test test_type NOT NULL
);
INSERT INTO test_table (some_test)
VALUES (ROW('SOME TEXT', 42));
-- This works great
SELECT id, (some_test).some_text, (some_test).some_number
FROM test_table;
┌────┬───────────┬─────────────┐
│ id │ some_text │ some_number │
├────┼───────────┼─────────────┤
│ 1 │ SOME TEXT │ 42 │
└────┴───────────┴─────────────┘
Sobald der Tabelle alias eingeführt wird Sie nicht die einzelne Attribute aus dem benutzerdefinierten getippt
Spalte SELECT kannSELECT id, x.(some_test).some_text, x.(some_test).some_number
FROM test_table AS x;
ERROR: syntax error at or near "("
LINE 1: select id, x.(some_test).some_text, x.(some_test).some_numbe...
^