• PostgreSQL之SQL语法(三)调用函数


      PostgreSQL允许带有命名参数的函数被使用位置命名记号法调用。命名记号法对于有大量参数的函数特别有用,因为它让参数和实际参数之间的关联更明显和可靠。在位置记号法中,书写一个函数调用时,其参数值要按照它们在函数声明中被定义的顺序书写。在命名记号法中,参数根据名称匹配函数参数,并且可以以任何顺序书写。对于每一种记法,还要考虑函数参数类型的效果。用例如下:

    CREATE FUNCTION concat_lower_or_upper(a text, b text, uppercase boolean DEFAULT false)
    RETURNS text
    AS
    $$
     SELECT CASE
            WHEN $3 THEN UPPER($1 || ' ' || $2)
            ELSE LOWER($1 || ' ' || $2)
            END;
    $$
    LANGUAGE SQL IMMUTABLE STRICT;

      函数concat_lower_or_upper有两个强制参数,ab。此外,有一个可选的参数uppercase,其默认值为falseab输入将被串接,并且根据uppercase参数被强制为大写或小写形式

    使用位置记号

    SELECT concat_lower_or_upper('Hello', 'World');
     concat_lower_or_upper 
    -----------------------
     hello world
    (1 row)

    使用命名记号

      在命名记号法中,每一个参数名都用=> 指定来把它与参数表达式分隔开。使用命名记号法的一个优点是参数可以用任何顺序指定

    SELECT concat_lower_or_upper(a => 'Hello', b => 'World', uppercase => true);
     concat_lower_or_upper 
    -----------------------
     HELLO WORLD
    (1 row)
    
    SELECT concat_lower_or_upper(a => 'Hello', uppercase => true, b => 'World');
     concat_lower_or_upper 
    -----------------------
     HELLO WORLD
    (1 row)

    使用混合记号

    SELECT concat_lower_or_upper('Hello', 'World', uppercase => true);
     concat_lower_or_upper 
    -----------------------
     HELLO WORLD
  • 相关阅读:
    04-26mysql命令(数据库操作层级,建表,对表的操作)
    mysql 建表和查询 大全 (待补全)
    04-21数据操作
    4-20 mysql 整理 (建表语句和mysql命令)
    MySql 初步整理
    初识jQuery 基础篇 借鉴版
    jQuery基础整理!!
    JS节点操作 (表格在js中添加行和单元格,并有一个删除键)
    一阶段项目结尾整理
    Css 分类 属性 选择器
  • 原文地址:https://www.cnblogs.com/ryjJava/p/14320830.html
Copyright © 2020-2023  润新知