【笔记】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
您能读到这儿,我呢是发自真心的感谢您,若要转载,还望请您带上链接

浙公网安备 33010602011771号