精华内容
下载资源
问答
  • mysql> select * from aa;+------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200||3 | 500|+------+------+6 rows in set (0.00 sec)以id分组,把name字段的值打印在一行,逗号...

    mysql> select * from aa;

    +------+------+

    | id| name |

    +------+------+

    |1 | 10|

    |1 | 20|

    |1 | 20|

    |2 | 20|

    |3 | 200  |

    |3 | 500  |

    +------+------+

    6 rows in set (0.00 sec)

    以id分组,把name字段的值打印在一行,逗号分隔(默认)mysql> select id,group_concat(name) from aa group by id;

    +------+--------------------+

    | id| group_concat(name) |

    +------+--------------------+

    |1 | 10,20,20|

    |2 | 20 |

    |3 | 200,500|

    +------+--------------------+

    3 rows in set (0.00 sec)

    以id分组,把name字段的值打印在一行,分号分隔

    mysql> select id,group_concat(name separator ';') from aa group by id;

    +------+----------------------------------+

    | id| group_concat(name separator ';') |

    +------+----------------------------------+

    |1 | 10;20;20 |

    |2 | 20|

    |3 | 200;500  |

    +------+----------------------------------+

    3 rows in set (0.00 sec)

    以id分组

    ,把去冗余的name字段的值打印在一行,

    逗号分隔

    mysql> select id,group_concat(distinct name) from aa group by id;

    +------+-----------------------------+

    | id| group_concat(distinct name) |

    +------+-----------------------------+

    |1 | 10,20|

    |2 | 20  |

    |3 | 200,500 |

    +------+-----------------------------+

    3 rows in set (0.00 sec)

    以id分组

    ,把name字段的值打印在一行,

    逗号分隔,以name排倒序

    mysql> select id,group_concat(name order by name desc) from aa group by id; +------+---------------------------------------+ | id| group_concat(name order by name desc) | +------+---------------------------------------+ |1 | 20,20,10  | |2 | 20| |3 | 500,200| +------+---------------------------------------+ 3 rows in set (0.00 sec)

    展开全文
  • 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子)和 GridView多行多列合并单元格(指定列合并)。今天继续再添加一些功能,首先看下图: 左边是原始数据的显示,右边是应用合并列...

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    去年的时候,我写了两篇文章:  GridView多行多列合并单元格(完整代码和例子)GridView多行多列合并单元格(指定列合并)。今天继续再添加一些功能,首先看下图:

    gridview-merge-cell-01

    左边是原始数据的显示,右边是应用合并列之后的效果。

    从图中可以看到,二级指标有两列,有的行中两列的内容一样,有的则不一样,如果实现如右图所示,看起来效果会更好一些。下面就着手实现这个功能,我的实现原理很简单,就是遍历GridView的行和遍历行中的单元格,如果单元格的前一列和当前列的内容相同就合并这两列。下面是具体实现的代码,上面有注释,应该很容易理解。

       1:          /// <summary>
       2:          /// 和并列
       3:          /// </summary>
       4:          /// <param name="gv">要合并的GridView</param>
       5:          /// <param name="startCol">开始列的索引</param>
       6:          /// <param name="endCol">结束列的索引</param>
       7:          /// <param name="containHeader">是否合并表头,默认不合并</param>
       8:          public static void MergeColumn(GridView gv, int startCol, int endCol, bool containHeader = false)
       9:          {
      10:              if (containHeader)
      11:              {
      12:                  BLRowCells(gv.HeaderRow, startCol, endCol);
      13:              }
      14:              foreach (GridViewRow row in gv.Rows)
      15:              {
      16:                  BLRowCells(row, startCol, endCol);
      17:              }
      18:          }
      19:   
      20:          /// <summary>
      21:          /// 遍历GridViewRow中的单元格
      22:          /// </summary>
      23:          /// <param name="row">要遍历的行</param>
      24:          /// <param name="start">开始索引</param>
      25:          /// <param name="end">结束索引</param>
      26:          private static void BLRowCells(GridViewRow row, int start, int end)
      27:          {
      28:              //从开始索引的下一列开始
      29:              for (int i = start + 1; i <= end; i++)
      30:              {
      31:                  //当前单元格
      32:                  TableCell currCell = row.Cells[i];
      33:                  //前一个单元格
      34:                  TableCell prevCell = row.Cells[i - 1];
      35:                  if (!string.IsNullOrEmpty(currCell.Text) && !string.IsNullOrEmpty(prevCell.Text))
      36:                  {
      37:                      if (currCell.Text == prevCell.Text)
      38:                      {
      39:                          currCell.ColumnSpan = prevCell.ColumnSpan < 1 ? 2 : prevCell.ColumnSpan + 1;
      40:                          prevCell.Visible = false;
      41:                      }
      42:                  }
      43:              }
      44:          }

    本篇文章作为前两篇文章的续文,内容相对来说简单一些,不过有需要合并GridView单元格的朋友,希望这三篇文章能够起到帮助作用!

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    展开全文
  • 小编最近有一个需求就是一个字段里面存张表的id,然后界面需要联查显示客户需要的对应的内容。经过一系列的百度搜索实践,最终发现了下面这个可以实现我想要的结果。 内容: 查询出来的结果: 第一种: ...

    前言:

    小编最近有一个需求就是一个字段里面存多张表的id,然后界面需要联查显示客户需要的对应的内容。经过一系列的百度搜索实践,最终发现了下面这个可以实现我想要的结果。

    内容:

    查询出来的结果:

     

     

    第一种:

    使用CONCAT(ch1, ch2) 函数,但是这个只适用于有两个参数的。而我的是多张表,不能使用。

    SELECT CONCAT(ch1, ch2) FROM t

    第二种:

    使用“||”  或链接,这样就可以将查询出来的多个字段链接到一块。例如:

    sql语句:

    SELECT
    	buc.COMPANY_NAME,
    -- 	gp.*,
    	gw.LICENSE_PLATE_NUMBER ,	
    	s.id|| b.id ||c.id ||r.id||p.id
    		
    FROM
    	ACC_BUSINESS_USABLE_CHANGE buc
    	LEFT JOIN GP_DETAILS gp ON buc.RELEVANCE_BILLS_ID = gp.id  
    	LEFT JOIN GP_WBILL gw ON  buc.RELEVANCE_BILLS_ID =  gw.id
    	LEFT JOIN SM_SETTLE s  ON buc.RELEVANCE_BILLS_ID=s.id
    	LEFT JOIN SM_SETTLE b  ON buc.RELEVANCE_BILLS_ID=b.id
    	LEFT JOIN SM_TRANSPORT_CAR c  ON buc.RELEVANCE_BILLS_ID=c.id
    	LEFT JOIN SM_PORT_RAILWAY r ON buc.RELEVANCE_BILLS_ID=r.id
    	LEFT JOIN SM_SPORT_PORT p ON buc.RELEVANCE_BILLS_ID=p.id
    WHERE buc.RELEVANCE_BILLS_ID ='4062201901250001006'
    or buc.RELEVANCE_BILLS_ID='4486201904090000007'
    or buc.RELEVANCE_BILLS_ID ='4065201811190000004'
    or buc.RELEVANCE_BILLS_ID ='4487201811270001001'
    or buc.RELEVANCE_BILLS_ID ='4486201902260000061'
    or buc.RELEVANCE_BILLS_ID ='4495201901090002'
    or buc.RELEVANCE_BILLS_ID ='4496201905213003'
    or buc.RELEVANCE_BILLS_ID ='4496201812270001'

    这样的效果还是不能达到我们想要的效果,然后我们使用as 将标红的字段别名更改为我们需要的。

    SELECT
    	buc.COMPANY_NAME,
    -- 	gp.*,
    	gw.LICENSE_PLATE_NUMBER ,	
    		(s.id|| b.id ||c.id ||r.id||p.id) as pid
    		
    FROM
    	ACC_BUSINESS_USABLE_CHANGE buc
    	LEFT JOIN GP_DETAILS gp ON buc.RELEVANCE_BILLS_ID = gp.id  
    	LEFT JOIN GP_WBILL gw ON  buc.RELEVANCE_BILLS_ID =  gw.id
    	LEFT JOIN SM_SETTLE s  ON buc.RELEVANCE_BILLS_ID=s.id
    	LEFT JOIN SM_SETTLE b  ON buc.RELEVANCE_BILLS_ID=b.id
    	LEFT JOIN SM_TRANSPORT_CAR c  ON buc.RELEVANCE_BILLS_ID=c.id
    	LEFT JOIN SM_PORT_RAILWAY r ON buc.RELEVANCE_BILLS_ID=r.id
    	LEFT JOIN SM_SPORT_PORT p ON buc.RELEVANCE_BILLS_ID=p.id
    WHERE buc.RELEVANCE_BILLS_ID ='4062201901250001006'
    or buc.RELEVANCE_BILLS_ID='4486201904090000007'
    or buc.RELEVANCE_BILLS_ID ='4065201811190000004'
    or buc.RELEVANCE_BILLS_ID ='4487201811270001001'
    or buc.RELEVANCE_BILLS_ID ='4486201902260000061'
    or buc.RELEVANCE_BILLS_ID ='4495201901090002'
    or buc.RELEVANCE_BILLS_ID ='4496201905213003'
    or buc.RELEVANCE_BILLS_ID ='4496201812270001'

    效果如下:

    展开全文
  • 上周写了一篇GridView多行多列合并单元格(完整代码和例子),实现的方法有很多不足之处,比如只能合并连续的列,不支持模板列。在今天的文章里,首先来解决第一个不足。 解决这个问题的思路并不难,现有的代码已经...

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    上周写了一篇GridView多行多列合并单元格(完整代码和例子),实现的方法有很多不足之处,比如只能合并连续的列,不支持模板列。在今天的文章里,首先来解决第一个不足。

    解决这个问题的思路并不难,现有的代码已经解决了连续列的合并,合并指定的列只需将要合并的列按照顺序传递给合并的方法,就OK了!下面我给出合并指定列的代码:

       1:  /// <summary>
       2:  /// 合并GridView单元格
       3:  /// </summary>
       4:  /// <param name="gv">要合并的GridView</param>
       5:  /// <param name="cols">指定的列,要按照顺序传入</param>
       6:  public static void MergeRow(GridView gv, params int[] cols)
       7:  {
       8:      RowArg init = new RowArg()
       9:      {
      10:          StartRowIndex = 0,
      11:          EndRowIndex = gv.Rows.Count - 2
      12:      };
      13:      for (int i = 0; i < cols.Length; i++)
      14:      {
      15:          if (i > 0)
      16:          {
      17:              List<RowArg> list = new List<RowArg>();
      18:              //从第二列开始就要遍历前一列
      19:              TraversesPrevCol(gv, cols[i - 1], list);
      20:              foreach (var item in list)
      21:              {
      22:                  MergeRow(gv, cols[i], item.StartRowIndex, item.EndRowIndex);
      23:              }
      24:          }
      25:          //合并开始列的行
      26:          else
      27:          {
      28:              MergeRow(gv, i, init.StartRowIndex, init.EndRowIndex);
      29:          }
      30:      }
      31:  }

    上一篇文章最后,我写了一个简单的例子,在这个例子中,如下图(左边)所示,合并了前四列,第一列是张三,第二列是张三的工资项:应发工资和五险一金,第三列分别是应发工资的子项:基本工资、奖金和加班,五险一金的子项:医疗保险和住房公积金。第四列基本工资:1月,奖金:1月,加班:1月… 正常来说,第四列都是1月的,应该都合并成一块。使用连续列合并的方法完成这个问题,可以将列的顺序进行调整,但是现在要求不能调整列的顺序,那么就只能按照指定列合并了。

    www.tnmblogs.com

    完成上图中间的合并格式,只需在GridView绑定了数据之后,调用本文开始的方法,传入列的顺序0,1,3,2,完成右边图的合并格式,只需传入列的顺序0,3,1,2。

       1:  //左边图
       2:  MergeGridViewCell.MergeRow(Gridview1, 0, 3);
       3:  //中间图
       4:  MergeGridViewCell.MergeRow(Gridview1, 0, 1, 3, 2);
       5:  //右边图
       6:  MergeGridViewCell.MergeRow(Gridview1, 0, 3, 1, 2);

    最后说明一下,本篇文章是在上一篇文章的基础上完成的,如果对此感兴趣的,可以先阅读上一篇文章

    GitHub项目地址:https://github.com/mingceng/merge-gridviewcell

    展开全文
  • 文章出处:mysql多行多列合并为一行一列 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+------+ ...
  • 多行多列合并排序:实现逻辑 ,先合并列,并排序,然后合并所有行。 group_concat()函数 就是为了将查询到的所有行的字段拼接起来。【多行合并时使用到】 语法也简单易懂:group_concat(str1, str2,...) 【语法...
  • 一、点击在拖入的显示控件(TreeList)右上方的箭头,在Treelist任务中选择数据源,添加项目数据源,... 二、具体代码如下: #region"合并单元格(多行多列)" //需要(行、列)合并的所有列标题名 List<...
  • 在用latex做表格的时候会需要多行或者多列合并,如下图所示: 上表的letax代码如下: \subsection{Costs} \begin{table}[!htbp] \centering \caption{Costs} \label{Table-cost}  \renewcommand{\arraystretch}{...
  • 概述 在join 的过程中我们很容易出现数据膨胀现象,即一行...第二种:将相同key对应多行的情况合并成一行,(如果一行有个字段,还有可能合并为一个字段中) 实现方式 如源表结构: pcgid string mobilegid string
  • mysql> select * from aa;+------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200||3 | 500|+------+------+6 rows in set (0.00 sec)以id分组,把name字段的值打印在一行,逗号...
  • mysql> select * from aa;+------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200||3 | 500|+------+------+6 rows in set (0.00 sec)以id分组,把name字段的值打印在一行,逗号...
  • 表格合并多行多列参考连接: https://blog.csdn.net/wzxlovesy/article/details/69063271 https://www.jianshu.com/p/89df0462ee5f 示例1:合并多行多列 首先举一个例子,在两行多列中,我既想合并两行一列,又想...
  • 本文转载自:https://www.cnblogs.com/nianming/archive/2012/10/10/2719103.html 作者:nianming 转载请注明该声明...使用GridView展示数据,经常会遇到合并单元格的情况。首先说明一下项目中合并单元格的要求,如...
  • ref : http://blog.csdn.net/priestmoon/article/details/7677452 group_concat: group_concat(distinct name) group_concat(name separator ';') // 默认是, ...group_concat(name order by name desc) ...SELE...
  • ctex表格实例——多行多列合并

    千次阅读 2014-09-09 15:20:07
    需要加入宏: \usepackage{multirow} ... Det3DMRF&0.8478/0.8468&0.9352/0.9347&0.9521/0.9515&0.7511/0.7504&0.8649/0....在新的一行或一若遇到被合并的单元格,则视作该格内容已填入,继续填下格。
  • 今天新学技能逆透视,将二维表转换成一维表,即n行m列合并(n-1)*m+1行两列。原表如下:转换后的表:将每个月的数据写在同一列,并另起一列存放对应月份方法一:Power Query(需要新一点的Excel版本,我用的是2016)...
  • http://dotnet.9sssd.com/aspnet/art/749
  • 例如: 原表: id name values 1 张三 A 2 李四 B 3 张三 C 显示为: id name values 1 张三 A|C 2 李四 B 这个方法该如何写啊。。。。我用的是access数据库。...只用数据合并..我没多少分,抱歉啊

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 457
精华内容 182
关键字:

多行多列合并