SQL - 如何从类型中选择子元素

时间:2011-06-21 08:35:27

标签: sql postgresql

我正在尝试从SQL中的自定义类型中选择子元素。

  

创建类型名称AS(   姓VARCHAR,   givenName VARCHAR);

     

CREATE TABLE test(A Name);

     

INSERT INTO测试值(('ter','minator'));

如何能够为我提供与test.surname ='ter'匹配的所有结果?

以下不起作用:

  

SELECT * FROM test WHERE a.surname ='ter';

1 个答案:

答案 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;