【问题标题】:how to combine two column values into one column value?如何将两列值合并为一列值?
【发布时间】:2011-10-23 13:56:54
【问题描述】:

我有表(Title varchar,Description varchar)。我将它绑定到数据网格以在 Windows 应用程序中使用。但在这里我想结合 Title,Description 并在单个行单元格中显示结果。 如果我这样使用

Select Names, 'myData' from emp

输出是:

Name1          myData
Name2          myData
Name3          myData

但是,我需要像这样显示 单列:

Name1
myData

Name2
myData

Name3
myData

我想将它绑定到数据网格。

我该怎么做?

【问题讨论】:

    标签: c# asp.net sql-server datagridview dataset


    【解决方案1】:

    如果你想合并这些列,你必须像下面的代码那样做

    Select Name, Family, Name+ CHAR(13) +Family as FullName From Employee
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我不建议在数据库层上执行此类转换,查询应该返回表,只要可能,就可以在应用程序级别,作为使用linq的情况:

      var transformedItems = items.Select(item => String.Format("{0}{1}{2}", 
                                               item.Name, 
                                               Environment.NewLine, 
                                               item.Description));
      

      【讨论】:

        【解决方案3】:
        Select Names + CHAR(10) + CHAR(13) + 'myData' 
        from emp
        

        将在数据库级别为您将所有内容放在一个列中。

        【讨论】:

          【解决方案4】:

          试试

          SELECT Names + char(13) + Description FROM emp
          

          这将在两列值之间插入换行符并将结果作为单列返回。

          【讨论】:

          • 这不是 OP 所要求的。努力解决你的答案以避免投票。
          • @Adrian - 他没有指定是否要在数据库或应用程序级别进行转换。请不要刻薄。
          • @Adrian:他问如何在单个列中显示数据,在两个表列的值之间看起来像换行符。这是实现此类功能的一种完全合法的方式。
          • @JNK:感谢您的支持。
          • 我相信我的心情让你感到不安。对不起,我应该做得更好。解决方案是有效的,是的。但是,OP 可能希望“展平”两列结果,其中两列 x 三记录结果变为 6 记录结果。至少,我是这么理解的。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-03
          • 1970-01-01
          • 1970-01-01
          • 2018-04-16
          • 2021-06-01
          • 1970-01-01
          相关资源
          最近更新 更多