服务器之家

服务器之家 > 正文

PostgreSql 的hash_code函数的用法说明

时间:2021-04-14 19:22     来源/作者:Muroidea

postgresql 实现的hash_code 函数与java hash_code方法一致

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
create function hash_code(text) returns integer
  language plpgsql
as
$$
declare
  i integer := 0;
  declare
  h bigint := 0;
begin
  for i in 1..length($1)
    loop
      h = (h * 31 + ascii(substring($1, i, 1))) & 4294967295;
    end loop;
  return cast(cast(h as bit(32)) as int4);
end;
$$;

补充:pgsql的某些常用函数

一、coalesce(col,value);

coalesce函数的作用是空值替换函数,即当某列的值为空时,则可用其他值进行替换,再返回给前端。

eg:coalesce(totalnum,0);即当字段名为totalnum的列的值为空时,则用0进行替换,进行替换的值可根据实际情况可用number类型,也可用varchar类型等。

二、regexp_split_to_table(col,',');

regexp_split_to_table函数的作用是利用正则表达式将字符串分割成表格。即将对指定列的值进行分割,分割后的每个子串将转成一行,多个子串将转成多行。如下图所示:

PostgreSql 的hash_code函数的用法说明

因此鉴于以上的功能,在实际开发中可以用于多类型,多状态或者多形式的条件查询,例如--如下图所示:

PostgreSql 的hash_code函数的用法说明

其中的'00,10,11,98'是可以由前端传过来封装好的字符串变量,这种做法比用循环取出,再封装成"'00','10','11','98'"这种形式的字符串方便了许多。

三、regexp_split_to_array(col,',');

regexp_split_to_array是将某一字段的值以特定的符号进行分割后转换为数组的格式,入下图所示

PostgreSql 的hash_code函数的用法说明

四、string_agg

直接把一个表达式或者某一列的字段合并变成字符串

格式--string_agg(expression,delimiter order by expression)

第一个参数表示需要合并的字段或者表达式。

第二个参数表示以什么符号进行将第一个参数进行链接起来,一般都是使用','。

第三个参数为可选项,表示将第一列的字段以怎样的排序进行合并。

示例:

?
1
string_agg(f_b_getusername(r.userid),',' order by r.crt_time desc) as mjxms

注:第二个参数与第三个参数之间不需要逗号进行隔离,只需要空格就行,甚至不需要空格!

五、substring(string [from int] [for int])

?
1
substring('abcdefg' from 2 for 3) = bcd

第一个参数是需要被截取的字符串,第二个参数是从第几位开始截取,起始位置是1,第三个参数表示截取的长度。

六、获取当前日期是星期几

?
1
select extract(dow from cast(now() as timestamp))

将dow换成day就是获取当前日期是当前月份的第几天

七、将日期转换成 interval 格式

?
1
select age('2019-10-10','2018-04-19')

可计算两个日期之间相差多少日期

PostgreSql 的hash_code函数的用法说明

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/u014087707/article/details/98209493

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部