postgresql笔记011—pgsql中调用函数使用及方法

调用函数

postgresql允许函数有命名参数,可以被位置或者名称表示法调用。名称表示法对有大量参数的函数特别有用,因为他更加明确和可靠的标记了形参和参数之间的联系。在位置标示法里,一个函数调用的参数值要用与函数声明相同的顺序来写出。在名称标示法里,参数是通过名称来与函数参数相匹配的,可以以任意顺序写出。

不管用那种表示法,在函数声明时给出的有默认值的参数在调用时不必写出。但是这在名称表示法中是特别有用的,因此参数的任意组合都是可以省略的。而在位置表示法中,参数只能从右到左省略。

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有两个强制的参数,a和b。而且第三个参数是一个可选参数uppercase,默认为false。a和b输入将被串联,并且将根据uppercase参数强制转换为大写或者小写。

使用位置表示法

位置表示法是传递参数到函数的传统机制。所有的参数都是按顺序指定。
案例:

select concat_lower_or_upper('Hello','World',true) as 大写,
	concat_lower_or_upper('Hello','World') as 默认转换小写,
	concat_lower_or_upper('Hello','World',false) as 小写;

输出结果。函数默认为false输出为小写。声明为true,则输出结果为大写。
在这里插入图片描述

使用名称表示法

在名称表示法中,每个参数名称是使用:=(冒号加等号)声明的,用来将他从参数表达式中独立出来。
案例:

select concat_lower_or_upper(a:='Hello',b:='World',uppercase:=true) as 大写,
	concat_lower_or_upper(a:='Hello',b:='World')  as 默认转换小写,
	concat_lower_or_upper(a:='Hello',b:='World',uppercase:=false) as 小写;

在这里插入图片描述

使用混合表示法

混合表示法结合了位置和名称表示法。命名参数不可以在位置参数前面。

select concat_lower_or_upper('Hello','World',uppercase:=true) as 大写;

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值