91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

COALESCE()函數怎么在postgresql 中使用

發布時間:2021-01-27 14:46:57 來源:億速云 閱讀:334 作者:Leah 欄目:開發技術

COALESCE()函數怎么在postgresql 中使用?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

場景:

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

如:

姓名 白名單地區

張三 中國,美國

則可使用如下語句:

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;

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丽水市| 屏山县| 太保市| 乌拉特中旗| 金塔县| 永泰县| 长乐市| 岢岚县| 武汉市| 丹东市| 怀集县| 买车| 保康县| 西吉县| 靖西县| 西丰县| 阳西县| 大兴区| 北辰区| 哈尔滨市| 乡城县| 衡水市| 古交市| 曲沃县| 南京市| 乳山市| 永城市| 枣阳市| 鄂伦春自治旗| 威远县| 江口县| 会泽县| 婺源县| 营口市| 通江县| 句容市| 巴彦淖尔市| 高尔夫| 沙洋县| 余庆县| 若羌县|