边儿上的小人您要嫌碍事儿,可将鼠标放在上头,边上底下有个叉,点一下就收起来了

【笔记】oracle INTERSECT指令&邮箱的正则匹配&trim()函数

【笔记】oracle INTERSECT

和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。
不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出)
而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。
简单来说,UNION 是联集,而 INTERSECT 是交集

INTERSECT 的语法格式如下:

xxx
INTERSECT
xxx

例如

select o.customer_id,c.name
from Orders o where xxx
intersect
select o.customer_id,c.name
from Orders o where xxx

邮箱的正则匹配:
例如:
写一条 SQL 语句,查询拥有有效邮箱的用户。
有效的邮箱包含符合下列条件的前缀名和域名:

前缀名是包含字母(大写或小写)、数字、下划线 '_'、句点 '.' 和/或横杠 '-' 的字符串。前缀名必须以字母开头。
域名是 '@leetcode.com' 。

regexp_like(mail,'^[A-Za-z]+([-./]|\w)*@leetcode\.com$')

trim()函数

在oracle中,trim()函数用于去除字符串首尾两侧的指定字符,
该函数可支持两个参数,第一个参数设置需要处理的字符串,
第二个参数设置需要去除的字符,该参数可省略,
如果不设置则默认去除两侧的空格字符;语法“TRIM(字符串[,字符])”

例如:
如果product_name 是小写字母且不包含前后空格且sale_date 格式为 ('YYYY-MM')

select lower(trim(a.product_name)) product_name,
       to_char(a.sale_date, 'yyyy-mm') AS sale_date,
  from Sales a

补充:
前后的空格以及回车/换行符需要清除
select replace(replace(trim(' qwer '),chr(10),''),chr(13),'') from dual

posted @   DbWong_0918  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示