返回指定表達式中某模式第一次出現(xiàn)的起始位置;如果在全部有效的文本和字符數(shù)據(jù)類型中沒有找到該模式,則返回零。
PATINDEX ( '%pattern%' , expression )
pattern
一個字符串。可以使用通配符,但 pattern 之前和之后必須有 % 字符(搜索第一個和最后一個字符時除外)。pattern 是短字符數(shù)據(jù)類型類別的表達式。
expression
一個表達式,通常為要在其中搜索指定模式的列,expression 為字符串數(shù)據(jù)類型類別。
int
PATINDEX 對 text 數(shù)據(jù)類型很有用;除 IS NULL、IS NOT NULL 和 LIKE(這些是 WHERE 子句中對 text 類型有效的僅有的其它比較運算)外,PATINDEX 也可用于 WHERE 子句中。
如果 pattern 或 expression 為 NULL,則當數(shù)據(jù)庫的兼容級別為 70 時 PATINDEX 返回 NULL;如果數(shù)據(jù)庫兼容級別為 65 或更靠前,則僅當 pattern 和 expression 同時為 NULL 時,PATINDEX 返回 NULL。
本示例查找模式"wonderful"在 titles 表中 notes 列的某一特定行中的開始位置。
USE pubs
GO
SELECT PATINDEX('%wonderful%', notes)
FROM titles
WHERE title_id = 'TC3218'
GO
下面是結(jié)果集:
-----------
46
(1 row(s) affected)
如果未通過 WHERE 子句限制要搜索的行,查詢將返回表中的所有行,對在其中找到該模式的所有行報告非零值,對在其中未找到該模式的所有行報告零值。
本示例使用通配符查找模式"won_erful"在 titles 表中 notes 列的某一特定行中的開始位置,其中下劃線為代表任何字符的通配符。
USE pubs
GO
SELECT PATINDEX('%won_erful%', notes)
FROM titles
WHERE title_id = 'TC3218'GO
下面是結(jié)果集:
------------
46
(1 row(s) affected)
如果沒有限制要搜索的行,查詢將返回表中的所有行,對在其中找到該模式的所有行報告非零值。
相關(guān)文章