2007 patindex函式的用法

2021-08-25 03:35:53 字數 1593 閱讀 8966

返回指定表示式中某模式第一次出現的起始位置;如果在全部有效的文字和字元資料型別中沒有找到該模式,則返回零。

transact-sql 語法約定

語法patindex ( 『%pattern%』 , e­xpression )

備註如 果 pattern 或 e­xpression 為 null,則當資料庫的相容級別為 70 時,patindex 將返回 null;如果資料庫相容級別小於或等於 65,則僅當 pattern 和 e­xpression 同時為 null 時,patindex 才返回 null。

patindex 基於輸入的排序規則執行比較。若要以指定排序規則進行比較,則可以使用 collate 將顯式排序規則應用於輸入值。

引數pattern

乙個文字字串。可以使用萬用字元,但 pattern 之前和之後必須有 % 字元(搜尋第乙個或最後乙個字元時除外)。pattern 是字串資料型別類別的表示式。

e­xpression

乙個表示式,通常為要在其中搜尋指定模式的列,e­xpression 為字串資料型別類別。

返回型別

如果 e­xpression 的資料型別為 varchar(max) 或 nvarchar(max),則為 bigint,否則為 int。

示例a. 在 patindex 中使用模式

以下示例查詢模式 ensure 在 document 表的 documentsummary 列的某一特定行中的開始位置。

use adventureworks;

goselect patindex(『%ensure%』,documentsummary)

from production.document

where documentid = 3;

go

下面是結果集:

複製**

———–

64(1 row(s) affected)

如果未通過 where 子句限制要搜尋的行,查詢將返回表中的所有行,對在其中找到該模式的所有行報告非零值,對在其中未找到該模式的所有行報告零值。

b. 在 patindex 中使用萬用字元

以下示例使用萬用字元查詢模式 en_ure 在 document 表中 documentsummary 列的某一特定行中的開始位置,其中下劃線為代表任何字元的萬用字元。

use adventureworks;

goselect patindex(『%en_ure%』, documentsummary)

from production.document

where documentid = 3;

go

下面是結果集:

————

64(1 row(s) affected)

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

c. 在 patindex 中使用 collate

以下示例使用 collate 函式顯式指定要搜尋的表示式的排序規則。

use tempdb;

goselect patindex ( 『%ein%』, 『das ist ein test』collate latin1_general_bin) ;

go

SQL中 patindex函式的用法

返回pattern字串在表示式expression裡第一次出現的位置,起始值從1開始算。pattern字串在expression表示式裡沒找就返回0,對所有有效的文字和字串就是有效的資料型別。描述一下此函式的具體用法 pattern 的用法類似於 like pattern 的用法,也就是模糊查詢其p...

SQL中 patindex函式的用法

返回pattern字串在表示式expression裡第一次出現的位置,起始值從1開始算,匹配不上結果 0 舉例 select patindex abc aabcaabcabc 2,abc出現的第乙個位置 select patindex abc aabcaabcabc 9,abc在結尾出現的位置 se...

SQL中 patindex函式的用法

原文 sql中 patindex函式的用法 語法格式 patindex pattern expression 返回pattern字串在表示式expression裡第一次出現的位置,起始值從1開始算。pattern字串在expression表示式裡沒找就返回0,對所有有效的文字和字串就是有效的資料型別...