加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql——条件判断函数,系统函数等

发布时间:2020-12-13 16:36:20 所属栏目:百科 来源:网络整理
导读:一、条件判断函数: 条件判断函数称为控制流程函数,postgresql中,进行条件判断的函数为:case。 1、CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END 该函数表示,如果expr值等于某个vn,就返回对应位置THEN后面的结果,如果与所有值都不相等,

一、条件判断函数:

条件判断函数称为控制流程函数,postgresql中,进行条件判断的函数为:case。


1、CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END

该函数表示,如果expr值等于某个vn,就返回对应位置THEN后面的结果,如果与所有值都不相等,就返回ELSE后面的rn。


例子:使用case value when语句执行分支操作,如下:

testdb=# select case 2 when 1 then 'one' when 2 then 'two' else 'more' end;

case

------

two

(1 row)


2、CASE WHEN v1 THEN r1 [WHEN v2 THEN r2] ELSE rn END

该函数表示,某个vn值为TRUE时,返回对应位置THEN后面的结果,如果所有值都不为TRUE,就返回ELSE后的rn.


例子:使用case when语句执行分支操作,如:

testdb=# select case when 1<0 then 'true' else 'false' end;

case

-------

false

(1 row)



二、系统信息函数:

postgresql中的系统信息有数据库的版本号、当前用户名和连接数,系统字符集、最后一个自动生成的ID值等。


1、获取postgresql的版本号:version()

testdb=# select version();

version

----------------------------------------------------------------------------------------------------------

PostgreSQL 9.6.9 on x86_64-pc-linux-gnu,compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16),64-bit

(1 row)


2、获取用户名的函数:user和current_user


testdb=# select user,current_user;

current_user | current_user

--------------+--------------

pguser | pguser

(1 row)



三、加密和解密函数


1、加密函数:MD5(str)

MD5(str)为字符串算出了一个MD5 128比特检查和。该值以32为十六进制的二进制字符串的形式返回,若参数为null则会返回null。


例子:使用MD5函数加密字符串,如:

testdb=# select MD5 ('zhang');

md5

----------------------------------

d0cd2693b3506677e4c55e91d6365bff

(1 row)


2、加密函数:encode(str,pswd_str)

encode(str,pswd_str)使用pswd_str作为加密编码,加密str。常见的加密编码包括:base64,hex和escape。


例子:使用encode的加密字符串,如:

testdb=# select encode('secret','hex'),length(encode('secret','hex'));

encode | length

--------------+--------

736563726574 | 12

(1 row)



3、解密函数:decode(crypt_str,pswd_str)

decode(crypt_str,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str。crypt_str是由encode()返回的字符串。


例子:使用decode函数解密被encode加密字符串,如:

testdb=# select decode(encode('secret','hex');

decode

----------------

x736563726574

(1 row)


-------------------------------------------------

改变数据类型的函数:


cast(s,AS type)将一个类型的值转换为另一个类型的值。


例子:使用cast函数进行数据类型的转换,如下:

testdb=# select cast(100 as char(2));

bpchar

--------

10

(1 row)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读