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