三行代码  ›  专栏  ›  技术社区  ›  Santhosh Kumar

如何访问用户定义数据类型的各个元素?

  •  0
  • Santhosh Kumar  · 技术社区  · 1 周前

    我有一个用户定义的数据类型,如下所示。

    create type my_type as (name varchar(100), credit_points double precision)

    我有一个表,它使用上面的类型作为列的数据类型,如下所示。

    create table tab1 (
        id serial,
        name_credit my_type
    )
    

    我可以使用下面的insert语句将值插入到这个表中。

    insert into tab1 (name_credit) values(('santhosh', 101.75)::my_type)
    

    现在,我想访问如下表。

    select * from tab1 where name_credit[2] between 100.0 and 110.0
    

    select * from tab1 where name_credit.credit_points between 100.0 and 110.0
    

    但这两种方法对我都不管用。有什么想法吗?

    1 回复  |  直到 1 周前
        1
  •  0
  •   sticky bit    1 周前

    将列名放入 () .

    SELECT *
           FROM tab1
           WHERE (name_credit).credit_points BETWEEN 100.0
                                                     AND 110.0;
    

    "8.16.3. Accessing Composite Types" 更多细节。