SQL必知会(二)-SQL查询篇(5)-用通配符进行过滤

第6课、用通配符进行过滤

LIKE:匹配文本
LIKE:针对未知值进行过滤。通配符搜索只能用于文本字段。

1)百分号%通配符
%表示任何字符出现任意次数。

需求:找出所有以词 Fish 起头的产品

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';

输出结果:

请添加图片描述

2)使用两个通配符

需求:找出所有包含“bean bag”的所有产品,不论它在该值中的之前或之后的位置。

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '%bean bag%';

-- 找出所有以 F 起头、以 y 结尾的所有产品
SELECT prod_name
FROM Products
WHERE prod_name LIKE 'F%y';

输出结果:

LIKE %bean bag%

请添加图片描述

LIKE F%y

请添加图片描述

3)下划线通配符
只匹配单个字符。DB2 不支持下划线通配符。

需求:找出包含‘inch teddy berar’文本为结尾的字符,且该文本的之前有两个字符联结在一起。

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '__ inch teddy bear';

输出结果:

请添加图片描述

4)方括号通配符
用来指定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符。

需求:找出所有名字以 J 或 M 起头的联系人。

SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%'
ORDER BY cust_contact;

-- 需求:找出所有名字除了以 J 或 M 之外的任意字符起头的联系人。
-- 方法1:
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[^JM]%'
ORDER BY cust_contact;

-- 方法2:
SELECT cust_contact
FROM Customers
WHERE NOT cust_contact LIKE '[JM]%'
ORDER BY cust_contact;

输出结果:

以 J 或 M 起头

请添加图片描述

除了以 J 或 M 起头之外

请添加图片描述

总结

LIKE:匹配文本

SELECT 列1, 列2
FROM 表
WHERE 列3 LIKE '内容+通配符';

注意 NULL:
通配符不匹配列值为 NULL 的行。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值