首頁>Club>
4
回覆列表
  • 1 # 淡然轉圈圈

    1、sql中有like 和 rlike,具體區別

    like:

    %:匹配零個及多個任意字元

    _:與任意單字元匹配

    []:匹配一個範圍

    [^]:排除一個範圍

    ESCAPE 關鍵字定義轉義符 WHERE ColumnA LIKE "%5/%%" ESCAPE "/"

    like不是正則,而是萬用字元

    rlike:

    rlike是正則,正則的寫法與java一樣。"\"需要使用"\\",例如"\w"需要使用"\\w"

    A rlike "\\d+" 匹配一個或多個數字, not A rlike "\\d+" 匹配非數字

    直接在條件裡面寫正則表示式

    2、hive sql 中 正則匹配函式

    regexp 功能和 rlike類似

    select count(*) from olap_b_dw_hotelorder_f where create_date_wid regexp "\\d{8}"

    select count(*) from olap_b_dw_hotelorder_f where create_date_wid rlike "\\d{8}"

    regexp_extract(string subject, string pattern, int index) 將字串subject按照pattern正則表示式的規則拆分,返回index指定的字元

    select regexp_extract("IloveYou","(I)(.*?)(You)",1) from test1 limit 1 // 1 匹配 I,2匹配 love,3匹配 You

    regexp_replace(string A, string B, string C) 將字串A中的符合Java正則表示式B的部分替換為C

    select regexp_replace("IloveYou","You","") from test1 // Ilove

    這裡幾個函式類似oracle的5個正則函式,具體可參考oracle的正則匹配函式

  • 中秋節和大豐收的關聯?
  • 文昌帝君春官詞?