拼接多条记录的某个字段

原创 2012年03月21日 14:37:08

有时候我们会遇到一条记录对应多条数据,需要拼接显示数据中的某个字段,例如项目实体表中有一条项目,对应设总表中的对条设总数据,这个时候我们需要将项目名称,设总名称查询出来显示在一个gridview列表中,就需要用sql拼接数据。

代码如下:

dtAllDate = new DataTable();
                    string sqlGetMen = string.Format(@"CREATE FUNCTION AllDesginMaster(@organid uniqueidentifier)
                            RETURNS VARCHAR(280)
                            AS
                            BEGIN
                            DECLARE @designMasters varchar(280)
                            SET  @designMasters=''       -----必须初始化
                            SELECT @designMasters+=coalesce(CASE @designMasters WHEN '' THEN '' END ,',' )+CAST(DesignName AS VARCHAR) 
                            FROM ProjectPhaseDesignMaster 
                            WHERE OrganizationId=@organid
                            RETURN @designMasters
                            END
                            ");
                    string sqlGetAllDate=string.Format(@"
                            SELECT P.OrganizationId,P.ProjectPhaseCode,P.ProjectPhaseName,P.ParamProjectTypeID,P.ProjectTypeCode,P.ProjectTypeName,DBO.AllDesginMaster(P.OrganizationId) AS DesginMasters,
                            P.PhaseID,P.PhaseName,P.DesignSize,
                            ( CASE  P.ProjectState WHEN 1 THEN '已启动'
                                        WHEN 2 THEN '正在进行'
                                        WHEN 3 THEN '暂停'
                                        WHEN 4 THEN '终止'
                                        WHEN 5 THEN '设计完成'
                                        WHEN 6 THEN '结束' END ) AS ProjectState
                            ,P.FormProjectDate,P.InstitutionFinishDate,ISNULL(C.ContractSum,0)/10000 AS ContractSum ,
                            ISNULL(C.CompleteReceiveSum,0)/10000 AS CompleteReceiveSum,(ISNULL(C.ContractSum,0)-ISNULL(C.CompleteReceiveSum,0))/10000 AS ResidueSum,
                            ISNULL(P.SuverySchedule,0) AS SuverySchedule,ISNULL(P.FinishRate,0) AS FinishRate,M.CapabilityID
                            FROM ProjectPhaseEntity P LEFT JOIN ContractEntity C
                            ON P.OrganizationId=C.ProjectID  LEFT JOIN MarketProject M 
                            ON P.MarketProjectID=M.MarketProjectID
                            ORDER BY P.ParamProjectTypeID,P.ProjectPhaseCode
                            DROP FUNCTION DBO.AllDesginMaster");
                    KPMSDB.ExecuteNonQuery(CommandType.Text, sqlGetMen);
                    dtAllDate = KPMSDB.ExecuteDataSet(CommandType.Text, sqlGetAllDate).Tables[0];


说明:在sql查询器中,sqlGetMen和sqlGetAllDate通过“GO”连接可以一起执行,但是在asp.net中是不识别GO,会报GO附近有语法错误,所以我给拆成两条sql语句分别执行。

效果显示如下:

关于SQL Server/oracle将一列的多行内容拼接成一行的问题讨论

比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB        ...
  • lanseliuxingluo
  • lanseliuxingluo
  • 2016年07月13日 09:04
  • 1234

dot net framework 中进行连接db2数据库的操作

1.在已经安装dot net framework 的客户端的机器上面安装并且注册db2 dot net data provider的驱动2.然后在dot net framework的命名空间中引入ui...
  • meloveself
  • meloveself
  • 2007年11月19日 11:00
  • 645

mysql 根据某个字段将多条记录的某个字段拼接成一个字段

SELECT id,GROUP_CONCAT(roleId) AS "rolelist" FROM user group by id
  • qdqht2009
  • qdqht2009
  • 2017年10月24日 17:07
  • 279

Oracle中将查询出的多条记录的某个字段拼接成一个字符串的实例

select 表.ID        listagg(表.Name, ',') within GROUP(order by 表.Name) as name   from 表  group by ...
  • woshihaorenyajun
  • woshihaorenyajun
  • 2016年04月19日 13:21
  • 188

db2字符串函数

转载于:http://www.cnblogs.com/zhaoshuangshuang/archive/2012/09/23/2699172.html   DB2一个汉字占3个字节,Oracl...
  • seminmredoxu
  • seminmredoxu
  • 2012年11月01日 13:57
  • 18798

db2与数据库的连接实例(使用ADO.NET)

  • 2008年09月16日 17:10
  • 519KB
  • 下载

在SQL语句中查询多条记录并把多条记录同一字段的值连接成一个字符并返回的写法

在SQL语句中查询多条记录并把多条记录同一字段的值连接成一个字符并返回的写法: 实现1.游标并循环拼凑sql语句 实现2: 用select语句:   select substr(...
  • guoxu775
  • guoxu775
  • 2009年06月04日 11:24
  • 8434

MySQL数据库将多条记录的单个字段合并成一条记录

GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/...
  • jimlong
  • jimlong
  • 2014年10月10日 10:20
  • 10008

DB2内连接查询和外连接查询

DB2内连接查询返回连接表中符合连接条件和查询条件的数据行,下面就为你详细介绍DB2内连接查询的方法,供您参考学习。   DB2内连接查询(INNER JOIN):   DB2内连接查询有两种...
  • fanyun_01
  • fanyun_01
  • 2017年01月25日 09:14
  • 1160

CI连接多个数据库遇到的问题

数据库快速入门例子代码 下面的内容将简单说明怎样使用数据库。更详细的信息请阅读各个函数的单独介绍页面。 初始化数据库类 下面的代码将依据你的数据库配置载入并初始化数据库类: $this...
  • BarryYangGoing
  • BarryYangGoing
  • 2014年10月30日 16:34
  • 1422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:拼接多条记录的某个字段
举报原因:
原因补充:

(最多只允许输入30个字)