加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

SQLserver中字符串查找功能patindex和charindex的差异

发布时间:2021-12-02 20:23:24 所属栏目:教程 来源:互联网
导读:最近经常使用字符串查找功能。 包括 1、全匹配查找字符串 2、模糊查找字符串 CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置。PATINDEX 可使用通配符,而 CHARINDEX 不可以。 这两个函数都带有2个参数: 1 希望获取其位置的模式。使用 PATINDEX,模式

 
假设你想要找出Northwind.dbo.Categories表中Description字段中是包含单词“Bread”或“bread”的所有记录,那么选择语句就可能是这样:
 
SELECT Description from Northwind.dbo.Categories
WHERE patindex("%[b,B]read%",description) > 0
 
这里我用通配符来确定大写和小写的“b”。我在Notthwind数据库中执行这个脚本后,得到下面的结果:
Description
--------------------------------------------------------
Desserts, candies, and sweet breads
Breads, crackers, pasta, and cereal
 
这是再用另外一个额外的通配符来查找一些记录的例子。这个例子是如何选出上面的查询结果中,Description字段的第二子字母不是“e”的纪录。
 
select Description from Northwind.dbo.Categories
where patindex("%[b,B]read%",description) > 0
and patindex("_[^e]%",description) = 1
 
通过在条件语句中增加一个使用^通配符的PATINDEX函数,我们可以过滤掉“Dessert, candies, and sweet breads”这条记录。上面的查询结果只有一条记录。
Description
--------------------------------------------------------
Breads, crackers, pasta, and cereal
 
总结
 
你现在可以发现CHARINDEX和PATINDEX搜索字符串时的区别了吧。PATINDEX函数支持使用通配符,可以用在很多有变化的查找中。而 CHARINDEX不可以。根据你自己不同的情况,这两个函数对你在SQL Server中的字符串的搜索、控制、分析很有帮助。

(编辑:宿州站长网)

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

推荐文章