SQL Server函數(shù):charindex和patindex的用法
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
在Microsoft SQL Server中,CHARINDEX?函數(shù)用于在一個字符串中查找另一個指定字符串的起始位置。如果找到,返回指定字符串在源字符串中的起始位置索引(從?1?開始計數(shù));如果沒找到,則返回?0。 基本語法:
expressionToFind:?目標字符串,就是想要找到的字符串,最大長度為8000?。 expressionToSearch:?用于被查找的字符串。 start_location(可選):?開始查找的位置,為空時默認從第一位開始查找。 1、簡單測試:
結(jié)果為6。 2、增加開始位置,但結(jié)果還是從前往后數(shù)
結(jié)果為14。 3、大小寫敏感
結(jié)果為0。 4、大小寫不敏感,CI是Case-InSensitve的縮寫
結(jié)果為6。 5、提取第一個分號前的內(nèi)容
結(jié)果為: 測試2; 測試3; 測試12; 測試13; PATINDEX和CHARINDEX類似,PATINDEX也可以用來判斷一個字符串中是否包含另一個字符串,二者的差異在于,前者是全匹配,后者支持模糊匹配。 基本語法:
%pattern%:這是包含通配符的模式字符串。通配符“%”表示零個或多個字符。例如“% abc%”?可以匹配包含“abc”的任何字符串,像“xabc”、“abcdef”等。 expression:這是要在其中查找模式的源字符串。 例如:
結(jié)果為3。
結(jié)果為8。 注意: 1、在大多數(shù)簡單的、沒有通配符的字符串查找場景中,CHARINDEX?函數(shù)的效率通常更高。因為?CHARINDEX?只需要進行基本的字符串逐字符匹配,而?PATINDEX?函數(shù)由于要處理可能存在的通配符和復(fù)雜的模式匹配規(guī)則,會涉及更復(fù)雜的邏輯處理。 2、MySQL?不支持charindex和patindex函數(shù),但有類似功能的函數(shù)。 該文章在 2024/11/14 11:40:42 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |