我正在尝试从SQL中的自定义类型中选择子元素。
创建类型名称AS( 姓VARCHAR, givenName VARCHAR);
CREATE TABLE test(A Name);
INSERT INTO测试值(('ter','minator'));
如何能够为我提供与test.surname ='ter'匹配的所有结果?
以下不起作用:
SELECT * FROM test WHERE a.surname ='ter';
答案 0 :(得分:2)
请参阅:
http://www.postgresql.org/docs/current/static/rowtypes.html
例如,您可能会尝试从on_hand示例表中选择一些子字段,例如:
SELECT item.name FROM on_hand WHERE item.price > 9.99;
这不起作用,因为根据SQL语法规则,名称项被视为表名,而不是on_hand的列名。你必须这样写:
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;