拼接多条记录的某个字段

原创 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 拼接多个字段的值&一个字段多条记录的拼接

 如student表: studentID studentName studentScore 01 Alice 9...

mysql批量更新多条记录的同一字段为不同值

mysql更新数据的某个字段,一般这样写:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';也可以这样用in...
  • zaxzdqd
  • zaxzdqd
  • 2017年05月12日 15:45
  • 190

合并多条记录的同一字段值SQL语句

1.生成测试数据: create table team(name varchar(32),person varchar(32)); insert into team values('A','Tom...
  • mxc1225
  • mxc1225
  • 2011年12月05日 10:26
  • 1463

高效SQL——合并多个字段值或多条记录

高效SQL——合并多个字段值或多条记录 作者: 李书琴,  出处:论坛, 责任编辑: 李书琴,  2007-12-10 11:30   为什么说是高效呢?因为摒弃了游标和函数的途径,而采用变...

group_concat()函数总结(mysql数据库中将某个字段的多条记录合并成一条记录),比较实用

select pr.productionId , (select group_concat(name)  from User a ,Appraise b where a.userId = b.u...

Oracle中将一条记录(某字段中为合并的信息)拆分成多条记录

将这种数据 select * from T_B_INFO_TEST 转化成这种数据:select * from  T_b_INFO_RESULT 转化数据的脚本: insert into T...

mysql同时更新多条记录的同一个字段

mysql同时更新多条记录的同一个字段,保证数据一致性

将DataTable中多条记录的两列拼接显示

订餐系统中需要将一份订单的各个菜名及其份数放到一起显示,如下图,下图也是最终想要的效果:         对应到我们的数据库中,一个订单号有多条食物及其相应份数的...

oracle存储过程将某张表一个字段的多值分开成多条数据插入到一张新表

create or replace PROCEDURE PRO_MANDATESCOPE (dataid in varchar2,tablename in varchar2 ) AS ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:拼接多条记录的某个字段
举报原因:
原因补充:

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