av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle REGEXP_LIKE模糊查詢用法例子

瀏覽:131日期:2023-03-12 15:25:41
目錄
  • 1、函數(shù)介紹
  • 2、使用此函數(shù)不區(qū)分大小寫
    • 2-1、LIKE 函數(shù)
    • 2-2、REGEXP_LIKE 函數(shù)
  • 3、多條件
    • 3-1、多個(gè)OR條件時(shí),LIKE函數(shù)就不能滿足需求了。
    • 3-2、AND :既有A又有B
    • 3-3、檢索以某個(gè)字符串開頭的數(shù)據(jù)
    • 3-4、檢索以某個(gè)字符串結(jié)尾的數(shù)據(jù)
  • 補(bǔ)充:oracle模糊查詢中的regexp_like嵌套子查詢用法
    • 總結(jié)

      1、函數(shù)介紹

      REGEXP_LIKE 函數(shù)在功能上與 LIKE 函數(shù)非常相似。 然而,雖然 LIKE 允許簡單的字符串匹配搜索,但 REGEXP_LIKE 函數(shù)非常強(qiáng)大,因?yàn)槌俗址ヅ渌阉髦猓€可以使用正則表達(dá)式。 REGEXP_LIKE 可以按如下方式使用。

      REGEXP_LIKE ( string , pattern [, match] )

      REGEXP_LIKE ( 檢索對象 , 檢索字符 [, 檢索參數(shù)] )

      ' 'i':不區(qū)分大小寫

      'c':區(qū)分大小寫

      'n':將換行符與“n”句點(diǎn) (.) 匹配

      'm':將搜索目標(biāo)視為多行,并將“^”和“$”匹配到每行的開頭和結(jié)尾。

      進(jìn)行測試之前先創(chuàng)建表

       CREATE TABLE test_table_regexp_like(  message_val VARCHAR2(50) NOT NULL); INSERT INTO test_table_regexp_like VALUES ("Data Discrepancy needs to be fixed.");INSERT INTO test_table_regexp_like VALUES ("I am in desperate NEED of money.");INSERT INTO test_table_regexp_like VALUES ("I really NeeD you forever.");

      2、使用此函數(shù)不區(qū)分大小寫

      2-1、LIKE 函數(shù)

      SELECT    message_val AS message_val_likeFROM    test_table_regexp_likeWHERE    LOWER(message_val) LIKE "%need%";

      查詢結(jié)果:

      message_val
      --------------------------------------------------
      Data Discrepancy needs to be fixed.
      I am in desperate NEED of money.
      I really NeeD you forever.

      2-2、REGEXP_LIKE 函數(shù)

      SELECT    message_val AS message_val_regexp_likeFROM    test_table_regexp_likeWHERE    REGEXP_LIKE(message_val, "need", "i");

      查詢結(jié)果

      message_val_regexp_like
      --------------------------------------------------
      DATA Discrepancy needs TO be fixed.
      I am IN desperate NEED OF money.
      I really NeeD you forever.

      3、多條件

      3-1、多個(gè)OR條件時(shí),LIKE函數(shù)就不能滿足需求了。

      -- 包含 am 或者 NeeD 的數(shù)據(jù)-- ”|“ 作用 = orSELECT    message_val AS message_val_regexp_likeFROM    test_table_regexp_likeWHERE    REGEXP_LIKE(message_val, "am|NeeD");     

      查詢結(jié)果

      message_val_regexp_like
      --------------------------------------------------
      I am IN desperate NEED OF money.
      I really NeeD you forever.

      3-2、AND :既有A又有B

      -- AND 條件 ("really" 和 "you" 都包含的)-- "()|()" = AND SELECT    message_val AS message_val_regexp_likeFROM    test_table_regexp_likeWHERE    REGEXP_LIKE(message_val, "(really)|(you)"); 

      檢索結(jié)果

      message_val_regexp_like
      --------------------------------------------------
      I really NeeD you forever.

      3-3、檢索以某個(gè)字符串開頭的數(shù)據(jù)

      -- 以 "I" 開頭,中間有 "you" 的字符串。-- "^" 字符串首位-- ".*" 任意字符串SELECT    message_val AS message_val_regexp_likeFROM    test_table_regexp_likeWHERE    REGEXP_LIKE(message_val, "^I.*you.*");

      檢索結(jié)果

      message_val_regexp_like
      --------------------------------------------------
      I really NeeD you forever.

      3-4、檢索以某個(gè)字符串結(jié)尾的數(shù)據(jù)

      -- 以 "I" 開頭、以 "money." 結(jié)尾的字符串-- "^" :字符串首位-- "$" :字符串末尾SELECT    message_val AS message_val_regexp_likeFROM    test_table_regexp_likeWHERE    REGEXP_LIKE(message_val, "^I.*money.$");

      檢索結(jié)果

      message_val_regexp_like
      --------------------------------------------------
      I am IN desperate NEED OF money.

      補(bǔ)充:oracle模糊查詢中的regexp_like嵌套子查詢用法

      oracle模糊查詢中的regexp_like嵌套子查詢用法

      regexp_like一般用于模糊查詢某一列時(shí)包含多個(gè)查詢條件

      需求1:在用戶表中查詢出賬號包含650000和230000的用戶。

      select * from sys_user where regexp_like(account,"650000|230000")

      以上的寫法等同于下面的寫法:

      select * from sys_user where account like "%650000%" or account like"%230000%"

      需求2:在另一張表中查詢出所需條件(查詢條件為另一個(gè)表的結(jié)果集),并在用戶表中以該條件模糊查詢對應(yīng)的用戶信息。

      即在sys_org表中查出類型為1的orgid并以此結(jié)果在sys_user表中查詢出對應(yīng)的賬號信息。

      select fullname,account from sys_user where  REGEXP_LIKE (account,(select replace(wm_concat(orgid),",","|") from (select orgid from  sys_org where orgtype = "1" order by orgid )))

      解決思路:

      若是以此結(jié)果集進(jìn)行查詢會報(bào)錯(cuò):“單行子查詢返回多行”

      1、將結(jié)果集顯示成一列。所用函數(shù):wm_concat(列名)

      注:wm_concat(列名),該函數(shù)可以把列值以","號分隔起來,并顯示成一行,即“行轉(zhuǎn)列”

      select wm_concat(orgid) from (select orgid from  sys_org where orgtype = "1" order by orgid )

      2、將結(jié)果集用 | 分隔

      select replace(wm_concat(orgid),",","|") from (select orgid from  sys_org where orgtype = "1" order by orgid )

      3、查詢條件并已完成,用 regexp_like查詢出所需信息即可

      select fullname,account from sys_user where  REGEXP_LIKE (account,(select replace(wm_concat(orgid),",","|") from (select orgid from  sys_org where orgtype = "1" order by orgid )))

      總結(jié)

      到此這篇關(guān)于Oracle REGEXP_LIKE模糊查詢用法的文章就介紹到這了,更多相關(guān)Oracle REGEXP_LIKE模糊查詢內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: Oracle
      主站蜘蛛池模板: 三级视频在线观看电影 | 国产一级特黄aaa大片评分 | 欧美一级www片免费观看 | 91视频导航 | 91在线免费视频 | 国产精品亚洲精品 | 日韩精品成人 | 色频 | 麻豆视频在线免费观看 | 中文字幕在线观看一区 | av片网站 | 成人精品在线观看 | 日韩在线精品视频 | 亚洲国产成人在线 | 久久不卡日韩美女 | 日操夜操 | 国产亚洲网站 | 免费黄色a级毛片 | 国产欧美在线 | 中日韩毛片 | 亚洲欧美日韩国产综合 | 大学生a级毛片免费视频 | 亚洲一区二区三区在线播放 | 久草精品视频 | 久久久夜色精品亚洲 | 久久亚洲国产精品日日av夜夜 | 国产精品伦理一区 | 欧美久久久 | www.亚洲一区| 国产在线一区二区三区 | 操操操操操 | 亚洲91精品 | 欧美精品在线一区二区三区 | 久久国品片 | 国产成人精品一区二区 | 欧美一区二区三区在线看 | 天天看天天操 | 国产你懂的在线观看 | 亚洲日日 | 亚洲国产aⅴ精品一区二区 免费观看av | 国产美女一区二区 |