SQL - Как выбрать подэлементы из типа - PullRequest
2 голосов
/ 21 июня 2011

Я пытаюсь выбрать подэлементы из самоопределяемого типа в SQL.

CREATE TYPE Name AS (фамилия VARCHAR, данное имя VARCHAR);

тест CREATE TABLE (AName);

INSERT INTO VALUES test (('ter', 'minator'));

Как можно получить все результаты, соответствующие test.surname = 'ter'?

Не работает следующее:

ВЫБРАТЬ * ИЗ ТЕСТА, ГДЕ a.surname =' ter ';

1 Ответ

2 голосов
/ 21 июня 2011

См .:

http://www.postgresql.org/docs/current/static/rowtypes.html

Например, вы можете попробовать выбрать некоторые подполя из нашей таблицы примеров on_hand, например:

SELECT item.name FROM on_hand WHERE item.price > 9.99;

Это не будет работать, так как элемент имени считается именем таблицы, а не именем столбца on_hand, согласно правилам синтаксиса SQL.Вы должны написать это так:

SELECT (item).name FROM on_hand WHERE (item).price > 9.99;

или, если вам нужно также использовать имя таблицы (например, в многопользовательском запросе), например:

SELECT (on_hand.item).name FROM on_hand WHERE (on_hand.item).price > 9.99;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...