加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

postgresql中使用function()函数的技巧!

发布时间:2021-06-02 11:41:54 所属栏目:创业 来源:互联网
导读:存在一个用户白名单表,提供了此用户的用户名和地域信息,判定此用户是否在此白名单表中。 如: 姓名 白名单地域 张三 中国,美国 则可行使如下语句: SELECT ID

存在一个用户白名单表,提供了此用户的用户名和地域信息,判定此用户是否在此白名单表中。

 

如:

 

姓名 白名单地域

 

张三 中国,美国

 

则可行使如下语句:

 

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 <> '';

 

 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;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读