繁体   English   中英

在特定行中按组返回

[英]return by group in specific row

我有table名称sample我只想按组返回level row

level  |  value
-------------------
  1    |   jhon 
  1    |   ren
  1    |   ronron
  2    |   mark
  2    |   nonoy
  2    |   edong
  3    |   pajardo
  3    |   bughao
  3    |   mariel
  4    |   marker
  4    |   jong
  4    |   jazz
  4    |   jhon

我只想输出就是这样。

level  |  value
-------------------
  1    |   jhon 
       |   ren
       |   ronron
  2    |   mark
       |   nonoy
       |   edong
  3    |   pajardo
       |   bughao
       |   mariel
  4    |   marker
       |   jong
       |   jazz
       |   jhon

您可以在MySQL中执行此操作,尽管我并不推荐这样做:

select l, value
from (select t.*,
             (case when @l = level then NULL
                   else @l := level
              end) as l
      from table t cross join (@l := NULL) params
      order by level
     ) t;

我不建议这样做,因为SQL表/结果集具有定义明确的行和列,并且它表示无序集。 所需的格式意味着给定行的定义取决于先前的行。 此类操作最好在应用程序层进行。

它不是您想要的输出,但是您可以使用它:

SELECT level, GROUP_CONCAT(value) FROM sample GROUP BY level

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM