PATINDEX

PATINDEX

返回指定表達式中某模式第一次出現的起始位置;如果在全部有效的文本和字符數據類型中沒有找到該模式,則返回零。

語法

PATINDEX ( '%pattern%' , expression )

參數

pattern

一個字符串。可以使用通配符,但 pattern 之前和之後必須有 % 字符(搜索第一個和最後一個字符時除外)。pattern 是短字符數據類型類別的表達式。

expression

一個表達式,通常爲要在其中搜索指定模式的列,expression 爲字符串數據類型類別。

返回類型

int

註釋

PATINDEX 對 text 數據類型很有用;除 IS NULL、IS NOT NULL 和 LIKE(這些是 WHERE 子句中對 text 類型有效的僅有的其它比較運算)外,PATINDEX 也可用於 WHERE 子句中。

如果 patternexpression 爲 NULL,則當數據庫的兼容級別爲 70 時 PATINDEX 返回 NULL;如果數據庫兼容級別爲 65 或更靠前,則僅當 patternexpression 同時爲 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)

如果沒有限制要搜索的行,查詢將返回表中的所有行,對在其中找到該模式的所有行報告非零值。

 

請參見

 

數據類型

字符串函數

發佈了225 篇原創文章 · 獲贊 10 · 訪問量 72萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章