笔记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 子句中