SQL Server CHARINDEX和PATINDEX详解
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-20
使用通配符可以编辑比我以上举得简单例子复杂得多的搜索字符串。假如说你要确定一个字符串是否包含字母A和Z,还有任何数字,这个PARINDEX函数命令可能像这样: PATINDEX(’%[A,Z,0-9]%[A,Z,0-9]%[A,Z,0-9]%’,’XYZABC123’) 注意在上面这个例子中的搜索字符部分使用了很多的通陪符。察看SQL Server联机丛书可以获得更多关于通佩符的信息。接下来,我们用两个例子来看PATINDEX和SELECT怎么联合起来使用。 假设你想要找出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中的字符串的搜索、控 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 用SQL语句来建立跟踪的问题下一篇: SQL Server的用户及权限
关于SQL Server CHARINDEX和PATINDEX详解的所有评论