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