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')
可计算两个日期之间相差多少日期
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]