本篇文章為大家展示了hash_code函數(shù)怎么在PostgreSql中使用,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)與策劃設(shè)計,凱里網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:凱里等地區(qū)。凱里做網(wǎng)站價格咨詢:028-86922220PostgreSql 實現(xiàn)的hash_code 函數(shù)與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的某些常用函數(shù)
COALESCE函數(shù)的作用是空值替換函數(shù),即當(dāng)某列的值為空時,則可用其他值進行替換,再返回給前端。
eg:COALESCE(totalnum,0);即當(dāng)字段名為totalnum的列的值為空時,則用0進行替換,進行替換的值可根據(jù)實際情況可用number類型,也可用varchar類型等。
regexp_split_to_table函數(shù)的作用是利用正則表達式將字符串分割成表格。即將對指定列的值進行分割,分割后的每個子串將轉(zhuǎn)成一行,多個子串將轉(zhuǎn)成多行。如下圖所示:
因此鑒于以上的功能,在實際開發(fā)中可以用于多類型,多狀態(tài)或者多形式的條件查詢,例如--如下圖所示:
其中的'00,10,11,98'是可以由前端傳過來封裝好的字符串變量,這種做法比用循環(huán)取出,再封裝成"'00','10','11','98'"這種形式的字符串方便了許多。
regexp_split_to_array是將某一字段的值以特定的符號進行分割后轉(zhuǎn)換為數(shù)組的格式,入下圖所示
直接把一個表達式或者某一列的字段合并變成字符串
格式--string_agg(expression,delimiter order by expression)
第一個參數(shù)表示需要合并的字段或者表達式。
第二個參數(shù)表示以什么符號進行將第一個參數(shù)進行鏈接起來,一般都是使用','。
第三個參數(shù)為可選項,表示將第一列的字段以怎樣的排序進行合并。
示例:
string_agg(f_b_getusername(r.userid),',' order by r.crt_time desc) as mjxms
注:第二個參數(shù)與第三個參數(shù)之間不需要逗號進行隔離,只需要空格就行,甚至不需要空格!
substring('abcdefg' from 2 for 3) = bcd
第一個參數(shù)是需要被截取的字符串,第二個參數(shù)是從第幾位開始截取,起始位置是1,第三個參數(shù)表示截取的長度。
SELECT extract(dow FROM cast(now() as TIMESTAMP))
將dow換成day就是獲取當(dāng)前日期是當(dāng)前月份的第幾天
select age('2019-10-10','2018-04-19')
可計算兩個日期之間相差多少日期
上述內(nèi)容就是hash_code函數(shù)怎么在PostgreSql中使用,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。