PATINDEX()的用法

來源:互聯網
上載者:User
PATINDEX
返回指定運算式中某模式第一次出現的起始位置;如果在全部有效文本和字元資料類型中沒有找到該模式,則返回零。
文法
PATINDEX ( '%pattern%' , expression )
參數
pattern
一個字串。可以使用萬用字元,但 pattern 之前和之後必須有 % 字元(搜尋第一個和最後一個字元時除外)。pattern 是短字元資料類型類別的運算式。
expression
一個運算式,通常為要在其中搜尋指定模式的列,expression 為字串資料型別類別。
傳回型別
int
注釋
PATINDEX 對 text 資料類型很有用;除 IS NULL、IS NOT NULL 和 LIKE(這些是 Where 子句中對 text 類型有效僅有的其它比較運算)外,PATINDEX 也可用於 Where 子句中。

-----------------------------------------

例一:
找出Northwind.dbo.Categories表中Description欄位中是包含單詞“Bread”或“bread”的所有記錄,那麼選擇語句就可能是這樣:

Select Description from Northwind.dbo.Categories
Where patindex('%[b,B]read%',description) > 0
PATINDEX 中可以使用萬用字元來確定大寫和小寫“b”

例二:
找出Northwind.dbo.Categories表中Description欄位中是包含單詞“Bread”或“bread”,且第二子字母不是“e”的記錄。

select Description from Northwind.dbo.Categories    
where patindex('%[b,B]read%',description) > 0 and patindex('_[^e]%',description) = 1
通過在條件陳述式中增加一個使用^萬用字元的PATINDEX函數,我們可以過濾掉“Dessert, candies, and sweet breads”這條記錄。上面的查詢結果只有一條記錄。

PATINDEX與CHARINDEX

PATINDEX函數支援使用萬用字元,可以用在很多有變化的尋找中。而CHARINDEX不可以。根據你自己不同的情況,這兩個函數對你在SQL Server中的字串的搜尋、控制、分析很有協助。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.