<small id='Z6QLP'></small><noframes id='Z6QLP'>

    <i id='Z6QLP'><tr id='Z6QLP'><dt id='Z6QLP'><q id='Z6QLP'><span id='Z6QLP'><b id='Z6QLP'><form id='Z6QLP'><ins id='Z6QLP'></ins><ul id='Z6QLP'></ul><sub id='Z6QLP'></sub></form><legend id='Z6QLP'></legend><bdo id='Z6QLP'><pre id='Z6QLP'><center id='Z6QLP'></center></pre></bdo></b><th id='Z6QLP'></th></span></q></dt></tr></i><div id='Z6QLP'><tfoot id='Z6QLP'></tfoot><dl id='Z6QLP'><fieldset id='Z6QLP'></fieldset></dl></div>
    1. <tfoot id='Z6QLP'></tfoot>
    2. <legend id='Z6QLP'><style id='Z6QLP'><dir id='Z6QLP'><q id='Z6QLP'></q></dir></style></legend>
      • <bdo id='Z6QLP'></bdo><ul id='Z6QLP'></ul>

      使用 regexp_substr 在 Oracle 中按空格和字符作为分隔符拆分字符串

      时间:2024-04-16

          <tbody id='qlfvG'></tbody>
        <legend id='qlfvG'><style id='qlfvG'><dir id='qlfvG'><q id='qlfvG'></q></dir></style></legend>

            <tfoot id='qlfvG'></tfoot>
              <bdo id='qlfvG'></bdo><ul id='qlfvG'></ul>

              <small id='qlfvG'></small><noframes id='qlfvG'>

              • <i id='qlfvG'><tr id='qlfvG'><dt id='qlfvG'><q id='qlfvG'><span id='qlfvG'><b id='qlfvG'><form id='qlfvG'><ins id='qlfvG'></ins><ul id='qlfvG'></ul><sub id='qlfvG'></sub></form><legend id='qlfvG'></legend><bdo id='qlfvG'><pre id='qlfvG'><center id='qlfvG'></center></pre></bdo></b><th id='qlfvG'></th></span></q></dt></tr></i><div id='qlfvG'><tfoot id='qlfvG'></tfoot><dl id='qlfvG'><fieldset id='qlfvG'></fieldset></dl></div>
                本文介绍了使用 regexp_substr 在 Oracle 中按空格和字符作为分隔符拆分字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在尝试使用 regexp_subtr 拆分字符串,但我无法让它工作.

                I'm trying to split a string with regexp_subtr, but i can't make it work.

                所以,首先,我有这个查询

                So, first, i have this query

                select regexp_substr('Helloworld - test!' ,'[[:space:]]-[[:space:]]') from dual
                

                它很好地提取了我的分隔符 - blank-blank

                which very nicely extracts my delimiter - blank-blank

                但是,当我尝试使用此选项拆分字符串时,它不起作用.

                But then, when i try to split the string with this option, it just doesn't work.

                select regexp_substr('Helloworld - test!' ,'[^[[:space:]]-[[:space:]]]+')from dual
                

                查询没有返回任何内容.

                The query returns nothing.

                帮助将不胜感激!谢谢

                推荐答案

                SQL Fiddle

                Oracle 11g R2 架构设置:

                CREATE TABLE TEST( str ) AS
                          SELECT 'Hello world - test-test! - test' FROM DUAL
                UNION ALL SELECT 'Hello world2 - test2 - test-test2' FROM DUAL;
                

                查询 1:

                SELECT Str,
                       COLUMN_VALUE AS Occurrence,
                       REGEXP_SUBSTR( str ,'(.*?)([[:space:]]-[[:space:]]|$)', 1, COLUMN_VALUE, NULL, 1 ) AS split_value
                FROM   TEST,
                       TABLE(
                         CAST(
                           MULTISET(
                             SELECT LEVEL
                             FROM   DUAL
                             CONNECT BY LEVEL < REGEXP_COUNT( str ,'(.*?)([[:space:]]-[[:space:]]|$)' )
                           )
                           AS SYS.ODCINUMBERLIST
                         )
                       )
                

                结果:

                |                               STR | OCCURRENCE |  SPLIT_VALUE |
                |-----------------------------------|------------|--------------|
                |   Hello world - test-test! - test |          1 |  Hello world |
                |   Hello world - test-test! - test |          2 |   test-test! |
                |   Hello world - test-test! - test |          3 |         test |
                | Hello world2 - test2 - test-test2 |          1 | Hello world2 |
                | Hello world2 - test2 - test-test2 |          2 |        test2 |
                | Hello world2 - test2 - test-test2 |          3 |   test-test2 |
                

                这篇关于使用 regexp_substr 在 Oracle 中按空格和字符作为分隔符拆分字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:拆分逗号分隔的字符串 -->FUNCTION db.CHARINDEX 不存在 下一篇:如何根据列的值展开Oracle查询的结果

                相关文章

                  • <bdo id='rhcj7'></bdo><ul id='rhcj7'></ul>

                    <legend id='rhcj7'><style id='rhcj7'><dir id='rhcj7'><q id='rhcj7'></q></dir></style></legend>
                  1. <tfoot id='rhcj7'></tfoot>

                  2. <small id='rhcj7'></small><noframes id='rhcj7'>

                    <i id='rhcj7'><tr id='rhcj7'><dt id='rhcj7'><q id='rhcj7'><span id='rhcj7'><b id='rhcj7'><form id='rhcj7'><ins id='rhcj7'></ins><ul id='rhcj7'></ul><sub id='rhcj7'></sub></form><legend id='rhcj7'></legend><bdo id='rhcj7'><pre id='rhcj7'><center id='rhcj7'></center></pre></bdo></b><th id='rhcj7'></th></span></q></dt></tr></i><div id='rhcj7'><tfoot id='rhcj7'></tfoot><dl id='rhcj7'><fieldset id='rhcj7'></fieldset></dl></div>