当前位置: 首页 > 编程笔记 >

PostgreSql 的hash_code函数的用法说明

赵同
2023-03-14
本文向大家介绍PostgreSql 的hash_code函数的用法说明,包括了PostgreSql 的hash_code函数的用法说明的使用技巧和注意事项,需要的朋友参考一下

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

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

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

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

三、regexp_split_to_array(col,',');

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

四、string_agg

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

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

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

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

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

示例:

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

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

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

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

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

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

SELECT extract(dow FROM cast(now() as TIMESTAMP))

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

七、将日期转换成 INTERVAL 格式

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

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

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

 类似资料:
  • 本文向大家介绍Postgresql去重函数distinct的用法说明,包括了Postgresql去重函数distinct的用法说明的使用技巧和注意事项,需要的朋友参考一下 在项目中我们常会对数据进行去重处理,有时候会用in或者EXISTS函数。或者通过group by也是可以实现查重 不过Postgresql还有自带去重函数:distinct 下面是distinct 的实例: 1、创建表:user

  • 本文向大家介绍pandas pd.read_csv()函数中parse_dates()参数的用法说明,包括了pandas pd.read_csv()函数中parse_dates()参数的用法说明的使用技巧和注意事项,需要的朋友参考一下 parse_dates : boolean or list of ints or names or list of lists or dict, default F

  • 主要内容:数学函数,字符串函数和操作符,类型转换相关函数PostgreSQL 内置函数也称为聚合函数,用于对字符串或数字数据执行处理。 下面是所有通用 PostgreSQL 内置函数的列表: COUNT 函数:用于计算数据库表中的行数。 MAX 函数:用于查询某一特定列中最大值。 MIN 函数:用于查询某一特定列中最小值。 AVG 函数:用于计算某一特定列中平均值。 SUM 函数:用于计算数字列所有值的总和。 ARRAY 函数:用于输入值(包括null

  • 本文向大家介绍Postgresql 跨库同步表及postgres_fdw的用法说明,包括了Postgresql 跨库同步表及postgres_fdw的用法说明的使用技巧和注意事项,需要的朋友参考一下 postgres_fdw模块 PostgreSQL 9.3新增了一个postgres_fdw模块, 已经整合在源码包中. 用于创建postgres外部表. 注:db_des为目标库,developer

  • 函数语法说明 函数语法说明 更新时间:2018-07-11 18:16:25 在数据建模过程中,Link Develop提供了常用的计算函数。 SUM 语法: SUM(a) 功能描述:返回所有输入数据的数值之和 入参类型:支持整型,浮点型 返回值数据类型:入参a所对应的数据类型。 示例: 测试数据 var1(INT) 4 7 测试案例: SUM(var1) 测试结果: 11 AVG 语法: AVG

  • 本文向大家介绍PostgreSQL数据库中窗口函数的语法与使用,包括了PostgreSQL数据库中窗口函数的语法与使用的使用技巧和注意事项,需要的朋友参考一下 什么是窗口函数? 一个窗口函数在一系列与当前行有某种关联的表行上执行一种计算。这与一个聚集函数所完成的计算有可比之处。但是窗口函数并不会使多行被聚集成一个单独的输出行,这与通常的非窗口聚集函数不同。取而代之,行保留它们独立的标识。在这些现象