PATINDEX (Transact-SQL)
傳回指定運算式中的模式,在所有有效文字和字元資料類型中第一次出現的起始位置,如果找不到模式,便傳回零。

(1)下列範例會尋找 ensure 模式在 Document 資料表中 DocumentSummary 資料行之特定資料列中的起始位置。

SELECT PATINDEX('%ensure%',DocumentSummary)
FROM Production.Document
WHERE DocumentNode = 0x7B40;

(2)搭配 PATINDEX 使用萬用字元
下列範例利用萬用字元來尋找 en_ure 模式在 Document 資料表中 DocumentSummary 資料行之特定資料列中的
起始位置,[底線] 是代表任何字元的萬用字元。

SELECT PATINDEX('%en_ure%', DocumentSummary)
FROM Production.Document
WHERE DocumentNode = 0x7B40;

使用PATINDEX()判斷欄位有[A-Z]、[a-z]、[0-9]之外的字元
這是一個MS SQL 的判斷欄位值內是否有包含英文大小寫及數字以外的字元,
我們可以利用PATINDEX()函數來處理這個問題,
這也是看了大鈞判斷資料欄位是否有中文字(使用ASCII比對及PATINDEX兩種方法)文章的靈感,
也剛好論壇的朋友恰好遇到此問題,於是我還是把這個ㄤ法做一下紀錄囉!

SELECT PATINDEX('%[^A-Z,^a-z,^0-9]%', [Field1])  FROM [TableName]


ISDATE(Transact-SQL)如果 expression 是有效的 date、time 或 datetime 值,則傳回 1,否則傳回 0。

創作者介紹
創作者 albert0956的部落格 的頭像
albert0956

albert0956的部落格

albert0956 發表在 痞客邦 留言(0) 人氣( 243 )