婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > PostgreSql 的hash_code函數(shù)的用法說明

PostgreSql 的hash_code函數(shù)的用法說明

熱門標(biāo)簽:濟(jì)南外呼網(wǎng)絡(luò)電話線路 天津開發(fā)區(qū)地圖標(biāo)注app 地圖標(biāo)注要花多少錢 電話機(jī)器人怎么換人工座席 移動(dòng)外呼系統(tǒng)模擬題 400電話申請(qǐng)客服 廣州電銷機(jī)器人公司招聘 電銷機(jī)器人能補(bǔ)救房產(chǎn)中介嗎 江蘇400電話辦理官方

PostgreSql 實(shí)現(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;
$$;

補(bǔ)充:PGSQL的某些常用函數(shù)

一、COALESCE(col,value);

COALESCE函數(shù)的作用是空值替換函數(shù),即當(dāng)某列的值為空時(shí),則可用其他值進(jìn)行替換,再返回給前端。

eg:COALESCE(totalnum,0);即當(dāng)字段名為totalnum的列的值為空時(shí),則用0進(jìn)行替換,進(jìn)行替換的值可根據(jù)實(shí)際情況可用number類型,也可用varchar類型等。

二、regexp_split_to_table(col,',');

regexp_split_to_table函數(shù)的作用是利用正則表達(dá)式將字符串分割成表格。即將對(duì)指定列的值進(jìn)行分割,分割后的每個(gè)子串將轉(zhuǎn)成一行,多個(gè)子串將轉(zhuǎn)成多行。如下圖所示:

因此鑒于以上的功能,在實(shí)際開發(fā)中可以用于多類型,多狀態(tài)或者多形式的條件查詢,例如--如下圖所示:

其中的'00,10,11,98'是可以由前端傳過來封裝好的字符串變量,這種做法比用循環(huán)取出,再封裝成"'00','10','11','98'"這種形式的字符串方便了許多。

三、regexp_split_to_array(col,',');

regexp_split_to_array是將某一字段的值以特定的符號(hào)進(jìn)行分割后轉(zhuǎn)換為數(shù)組的格式,入下圖所示

四、string_agg

直接把一個(gè)表達(dá)式或者某一列的字段合并變成字符串

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

第一個(gè)參數(shù)表示需要合并的字段或者表達(dá)式。

第二個(gè)參數(shù)表示以什么符號(hào)進(jìn)行將第一個(gè)參數(shù)進(jìn)行鏈接起來,一般都是使用','。

第三個(gè)參數(shù)為可選項(xiàng),表示將第一列的字段以怎樣的排序進(jìn)行合并。

示例:

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

注:第二個(gè)參數(shù)與第三個(gè)參數(shù)之間不需要逗號(hào)進(jìn)行隔離,只需要空格就行,甚至不需要空格!

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

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

第一個(gè)參數(shù)是需要被截取的字符串,第二個(gè)參數(shù)是從第幾位開始截取,起始位置是1,第三個(gè)參數(shù)表示截取的長(zhǎng)度。

六、獲取當(dāng)前日期是星期幾

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

將dow換成day就是獲取當(dāng)前日期是當(dāng)前月份的第幾天

七、將日期轉(zhuǎn)換成 INTERVAL 格式

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

可計(jì)算兩個(gè)日期之間相差多少日期

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql 索引之 hash的使用詳解
  • PostgreSQL Sequence序列的使用詳解
  • PostgreSQL之INDEX 索引詳解
  • PostgreSql 重建索引的操作
  • Postgresql 查詢表引用或被引用的外鍵操作

標(biāo)簽:杭州 昭通 寶雞 濮陽 辛集 溫州 海西 榆林

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PostgreSql 的hash_code函數(shù)的用法說明》,本文關(guān)鍵詞  PostgreSql,的,hash,code,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PostgreSql 的hash_code函數(shù)的用法說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于PostgreSql 的hash_code函數(shù)的用法說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 巫溪县| 大城县| 永丰县| 介休市| 定远县| 清远市| 云南省| 当雄县| 天柱县| 湘西| 黑龙江省| 望都县| 类乌齐县| 廊坊市| 昌黎县| 隆昌县| 武川县| 徐州市| 泗阳县| 合阳县| 亚东县| 敖汉旗| 二手房| 深泽县| 科尔| 特克斯县| 雷波县| 贞丰县| 同德县| 安溪县| 来凤县| 开原市| 荥阳市| 平和县| 漳浦县| 铁力市| 和田市| 赣州市| 雅安市| 乐昌市| 天长市|