SyntaxHighlighter

2013-05-20

SQL中的特殊字元(Pattern Matching in SQL)

在SQL中使用LIKE或是NOT LIKE關鍵字代替運算子(諸如=, >, <, ...)時,你可以使用SQL的Pattern Matching功能。

Pattern Matching是什麼東西哩?Pattern Matching是出自正規表現的關鍵字。有些中文網站翻譯作「樣式比對」。搜尋與特定Pattern相符合的字串,或是判斷字串是否符合Pattern的要求。

在SQL中,Pattern Matching是case-sensitive的,意思是,A與a是完全不一樣的單字。

以下是幾個在SQL的Pattern Matching裡具有特殊意義的字元


  • % (百分比符號,percent mark): 相同於windows裡的*萬用字元。0個以上的任何字元。例如:搜索"d%base",  你可以搜尋到dbase, database, 或是dkbase
  • _ (下線, underscore): 相同於windows裡的?萬用字元。任意的1個字元。搜索"A___e",你可以搜尋到Apple, Amaze, 或是任何一個A開頭e結尾的長度5的字彙
  • [] (角括號,square brackets): 包含在特定範圍內的一個特定字元。[a-f]表示a,b,c,d,e,f其中的一個字元。[abcdef]也等同於[a-f]。
  • [^] (內含脫字符號的角括號, square brackets with caret): 表示除了特定範圍內的字元以外的其他字元。"[^a-z]%"表示任何不用小寫字母開始的單字。"de[^l]%"就表示任何以de但是不是del開始的單字。(所以delete就不會出現,但是會出現demark)
在角括號裡,","(逗號)通常不帶有任何意義,只為區分字元。[^S,B,R] = [^SBR]

0 件のコメント:

人気の投稿