笔记230 比较 CHARINDEX 和 PATINDEX 存储过程传入多个参数的时候中间用逗号隔开用PATINDEX 2013-3-20

笔记230 比较 CHARINDEX 和 PATINDEX  存储过程传入多个参数的时候中间用逗号隔开用PATINDEX 2013-3-20

 1 --比较 CHARINDEX 和 PATINDEX  存储过程传入多个参数的时候中间用逗号隔开用PATINDEX 2013-3-20
 2 --
 3 --CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置。PATINDEX 可使用通配符,而 CHARINDEX 不可以。
 4 --这两个函数都带有两个参数:
 5 --希望获取其位置的模式。使用 PATINDEX,模式是可以包含通配符的字面字符串。使用 CHARINDEX,模式是字面字符串(不能包含通配符)。
 6 --
 7 --字符串值表达式(通常为列名),Microsoft® SQL Server™ 在其中搜索指定的模式。
 8 --例如,查找模式"wonderful"在 titles 表中 notes 列的某一特定行中的开始位置。
 9 USE pubs
10 GO
11 SELECT  CHARINDEX('wonderful', notes)
12 FROM    titles
13 WHERE   title_id = 'TC3218'
14 
15 
16 
17 --下面是结果集:
18 ------------------
19 --46
20 --(1 row(s) affected)
21 --如果未限制搜索的行,查询将返回表中的所有行,并对在其中查找到该模式的所有行报告非零值,对其它行报告零值。
22 --例如,使用通配符查找模式"candies"在 Categories 表中的 Description 列的任一行中的开始位置:
23    
24 USE Northwind
25 GO
26 SELECT 
27 CategoryID ,
28 [Description],
29 PATINDEX('%candies%', Description) AS POSITION
30 FROM    Categories
31 WHERE   PATINDEX('%candies%', Description) <> 0
32    
33  
34 --如果没有限制要搜索的行,查询将返回表中的所有行,对在其中找到该模式的所有行报告非零值。
35 --PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 WHERE 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 WHERE 子句中

 

posted @ 2013-08-04 13:57  桦仔  阅读(706)  评论(0编辑  收藏  举报