查看: 34|回复: 1

[JavaSE] 复合类型

[复制链接]
  • TA的每日心情
    开心
    2015-3-20 14:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-10-11 22:40:34 | 显示全部楼层 |阅读模式
    1). 创建数据表,这样与之对应的复合类型也随之生成。
        CREATE TABLE emp (
            name        text,
            salary      numeric,
            age         integer,
        );
        2). 创建函数,其参数为复合类型。在函数体内,可以像引用基本类型参数那样引用复合类型,如$1。访问复合类型的字段使用点表达式即可,如:$1.salary。
        CREATE FUNCTION double_salary(emp) RETURNS integer AS $$
            SELECT ($1.salary * 2)::integer AS salary;
        $$ LANGUAGE SQL;
        3). 在select语句中,可以使用emp.*表示emp表的一整行数据。
        SELECT name, double_salary(emp.*) AS dream FROM emp WHERE age > 30;
        4). 我们也可以使用ROW表达式构造自定义的复合类型,如:
        SELECT name, double_salary(ROW(name, salary*1.1, age)) AS dream FROM emp;
        5). 创建一个函数,其返回值为复合类型,如:
        CREATE FUNCTION new_emp() RETURNS emp AS $$
            SELECT ROW('None', 1000.0, 25)::emp;
        $$ LANGUAGE SQL;
        6). 调用返回复合类型的函数。
        SELECT new_emp();
        7). 调用返回复合类型的函数,同时访问该返回值的某个字段。
        SELECT (new_emp()).name;
    您需要登录后才可以回帖 登录 | 注册青鸟豆号

    本版积分规则

    Copyright 1999-2018 Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd

    北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有

    京ICP备11045574号-3 京公网安备11010802013845号

    快速回复 返回顶部 返回列表