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

主頁 > 知識庫 > postgresql 中的COALESCE()函數使用小技巧

postgresql 中的COALESCE()函數使用小技巧

熱門標簽:移動外呼系統模擬題 廣州電銷機器人公司招聘 濟南外呼網絡電話線路 地圖標注要花多少錢 電話機器人怎么換人工座席 400電話申請客服 電銷機器人能補救房產中介嗎 天津開發區地圖標注app 江蘇400電話辦理官方

場景:

存在一個用戶白名單表,提供了此用戶的用戶名和地區信息,判斷此用戶是否在此白名單表中。

如:

姓名 白名單地區

張三 中國,美國

則可使用如下語句:

SELECT
  ID,
  user,
  area_list
FROM
  t_white_user
WHERE
  user = #{ user,
  jdbcType = VARCHAR }
AND (
  COALESCE (area_list, '') LIKE CONCAT (
    '%' ,#{ country,
    jdbcType = VARCHAR }, '%'
  )
  OR area_list IS NULL
)
LIMIT 1

技巧點分析:

1、coalesce函數說明:返回其參數中第一個非空表達式,這里使用即 area_list

2、白名單地區為多個國家以逗號分隔,則使用like concat的方式,能查詢出某個國家是否被包含其中。

補充:PostgreSQL - null和''的區別與判斷以及COALESCE函數

null和''的區別與判斷

null是一種類型,''是空字符串,打個比方,''是你參加了考試且得了零分,而null則是你壓根就沒有參加考試。

如果要在sql中對兩者進行判斷,是有區別的:

//null只能和is或is not搭配,不能使用=、!=或者>
select * from student where name is null;
select * from student where name is not null;
//''的判斷可以使用=、!=或者>
select * from student where name = '';
select * from student where name != '';
select * from student where name > '';

使用COALESCE函數

COALESCE函數是返回參數中的第一個非null的值,它要求參數中至少有一個是非null的,如果參數都是null會報錯。

select COALESCE(null,null); //報錯
select COALESCE(null,null,now()::varchar,''); //結果會得到當前的時間
select COALESCE(null,null,'',now()::varchar); //結果會得到''
//可以和其他函數配合來實現一些復雜點的功能:查詢學生姓名,如果學生名字為null或''則顯示“姓名為空”
select case when coalesce(name,'') = '' then '姓名為空' else name end from student;

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • postgresql SQL語句變量的使用說明
  • PostgreSQL 正則表達式替換-使用變量方式
  • postgresql 導入數據庫表并重設自增屬性的操作
  • postgresql coalesce函數數據轉換方式
  • postgresql 實現修改jsonb字段中的某一個值
  • postgresql 存儲函數調用變量的3種方法小結

標簽:杭州 昭通 辛集 海西 溫州 寶雞 榆林 濮陽

巨人網絡通訊聲明:本文標題《postgresql 中的COALESCE()函數使用小技巧》,本文關鍵詞  postgresql,中的,COALESCE,函數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgresql 中的COALESCE()函數使用小技巧》相關的同類信息!
  • 本頁收集關于postgresql 中的COALESCE()函數使用小技巧的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 永川市| 闵行区| 五家渠市| 扶绥县| 张家界市| 罗江县| 弥勒县| 乳源| 江都市| 池州市| 临澧县| 布尔津县| 图木舒克市| 三江| 东丰县| 临西县| 日照市| 略阳县| 大新县| 包头市| 商都县| 修水县| 玉溪市| 贵港市| 太湖县| 新邵县| 建湖县| 河北省| 锡林郭勒盟| 颍上县| 肃宁县| 中西区| 望谟县| 南安市| 白水县| 临泉县| 滦南县| 岳阳市| 安国市| 称多县| 仁化县|