乱码乱a∨中文字幕,在线免费激情视频,亚洲欧美久久夜夜潮,国产在线网址

  1. <sub id="hjl7n"></sub>

    1. <sub id="hjl7n"></sub>

      <legend id="hjl7n"></legend>

      當前位置:首頁 >  站長 >  數(shù)據(jù)庫 >  正文

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

       2021-05-22 16:48  來源: 腳本之家   我來投稿 撤稿糾錯

        阿里云優(yōu)惠券 先領(lǐng)券再下單

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

      如:

      姓名 白名單地區(qū)

      張三 中國,美國

      則可使用如下語句:

      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函數(shù)說明:返回其參數(shù)中第一個非空表達式,這里使用即 area_list

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

      補充:PostgreSQL - null和''的區(qū)別與判斷以及COALESCE函數(shù)

      null和''的區(qū)別與判斷

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

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

      //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函數(shù)

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

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

      文章來源:腳本之家

      來源地址:https://www.jb51.net/article/204892.htm

      申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!

      相關(guān)文章

      熱門排行

      信息推薦