postgresql——条件判断函数,系统函数等
admin
2023-05-21 01:02:24
0

一、条件判断函数:

条件判断函数称为控制流程函数,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'),'hex');

     decode     

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

 \x736563726574

(1 row)


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

改变数据类型的函数:


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


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

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

 bpchar 

--------

 10

(1 row)


相关内容

热门资讯

在白令海峡修超级大坝,能减缓欧... 位于美国阿拉斯加和俄罗斯之间的白令海峡,在冰河时期曾是连接亚洲和美洲大陆的“陆桥”。近日研究发现,这...
原创 I... iQOO Z系列在海外好像要提速了。最近有个型号叫I2510的新机,就是iQOO Z11 Lite ...
国家统计局评价当前经济形势:保... 【大河财立方消息】5月18日,国新办举行新闻发布会,介绍2026年4月份国民经济运行情况。会上,有记...
5·18国际博物馆日丨瞧!这些... 绿釉立姿陶狗文创。河南博物院供图本版插画:王伟宾 图片效果由AI生成5月17日,市民趁着周末纷纷前往...
夏天到了,来新乡“野”吧 日前,关于新乡的一组数据意外受到关注:微信团队发布的《2026年“五一”假期微信支付数据报告》显示,...
上海移动打出“智能加码”组合拳... 上证报中国证券网讯(记者 宋薇萍)5月17日,在上海举行的“智能加码科创申城”中国移动上海公司世界电...
私家车多次别挡救护车,北京交警... 近日,北京交警接到市民反映,在朝阳区东三环长虹桥由南向北方向,一辆黑色小客车多次别挡一辆外埠救护车,...
稳居全球首位!中国大模型周调用... 记者|宋欣悦 编辑|程鹏 高涵向江林 校对|段炼 《每日经济新闻》根据OpenRouter最新数据测...
无锡高新区科技助残孵化谷投运 来源:滚动播报 (来源:新华日报) 本报讯 (记者 浦敏琦) 5月15日,无锡高新区科技助残孵化谷正...
海岛女人,造一艘“船” 距离上海50多公里,有一座叫作衢山岛的岛屿,没有桥和路连接,唯一可抵达的交通只有轮渡。一张中国地图展...