<bdo id='2lBTb'></bdo><ul id='2lBTb'></ul>
        <legend id='2lBTb'><style id='2lBTb'><dir id='2lBTb'><q id='2lBTb'></q></dir></style></legend>
        <tfoot id='2lBTb'></tfoot>
      1. <small id='2lBTb'></small><noframes id='2lBTb'>

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

        SQL 将值拆分为多行

        时间:2023-08-20

          <bdo id='lgPTK'></bdo><ul id='lgPTK'></ul>

            <tfoot id='lgPTK'></tfoot>
            <legend id='lgPTK'><style id='lgPTK'><dir id='lgPTK'><q id='lgPTK'></q></dir></style></legend>

          1. <small id='lgPTK'></small><noframes id='lgPTK'>

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

                  本文介绍了SQL 将值拆分为多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有桌子:

                  id | name    
                  1  | a,b,c    
                  2  | b
                  

                  我想要这样的输出:

                  id | name    
                  1  | a    
                  1  | b    
                  1  | c    
                  2  | b
                  

                  推荐答案

                  如果您可以创建一个数字表,其中包含从 1 到要拆分的最大字段的数字,您可以使用如下解决方案:

                  If you can create a numbers table, that contains numbers from 1 to the maximum fields to split, you could use a solution like this:

                  select
                    tablename.id,
                    SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
                  from
                    numbers inner join tablename
                    on CHAR_LENGTH(tablename.name)
                       -CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
                  order by
                    id, n
                  

                  请参阅 fiddle 此处.

                  Please see fiddle here.

                  如果您无法创建表,那么解决方案可以是:

                  If you cannot create a table, then a solution can be this:

                  select
                    tablename.id,
                    SUBSTRING_INDEX(SUBSTRING_INDEX(tablename.name, ',', numbers.n), ',', -1) name
                  from
                    (select 1 n union all
                     select 2 union all select 3 union all
                     select 4 union all select 5) numbers INNER JOIN tablename
                    on CHAR_LENGTH(tablename.name)
                       -CHAR_LENGTH(REPLACE(tablename.name, ',', ''))>=numbers.n-1
                  order by
                    id, n
                  

                  示例小提琴是这里.

                  这篇关于SQL 将值拆分为多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:加入与子查询 下一篇:MySQL 快速从 600K 行中随机选择 10 行

                  相关文章

                  最新文章

                      <bdo id='gZMQO'></bdo><ul id='gZMQO'></ul>

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

                    2. <tfoot id='gZMQO'></tfoot>

                      <legend id='gZMQO'><style id='gZMQO'><dir id='gZMQO'><q id='gZMQO'></q></dir></style></legend>