SQL 合并多行记录的相同字段值_MsSql

1.从数据库中先查询符合条件的记录,存放于一个DataTable中,在使用c#等开始遍历这张表,利用DataRow中的主键,再去读取相应的符合条件的多条记录,合并这些第二次读取到的记录内容,返回给前面的这个DataRow数据行。这样做没有错,但是如果数据量大,我们可能面临无数次的打开断开数据库链接,速度效率将会很低。
2.从数据库中一次读取数据到一张表中返回并显示到UI层。说起来谁都想这么做,但是以前太笨,没有去研究这个,今天因为数据量较大的原因,让我不得不想些其他办法来提高点效率。
Google~hk一下,果真有答案,然后依葫芦画瓢,自己写了一个
目的是获取不定量的符合条件的兼职记录,并将每个兼职参与项目情况记录到某几个字段当中,然后一次返回Table

复制代码 代码如下:

Create function Fn_GetJobListByPID--创建自定义函数获取指定兼职参与的所有项目编号及项目数量
(
@ParttimerID int
)
returns @t table(Jobs varchar(5000),ParttimerID int,TotalCount int)
as
begin
declare @sql varchar(5000),@TotalCount int
set @sql=''
set @TotalCount=0
select @sql=@sql+j.JobNo+'-'+j.JobWave+' ',@TotalCount=@TotalCount+1
from ONJB_JobApplication a,ONJB_Jobs j
where a.ParttimerID=@ParttimerID
and a.Result='V'
and a.JobID=j.JobID
insert @t values(@sql,@ParttimerID,@TotalCount)
return
end

引用

复制代码 代码如下:

--...........................
--做过项目
left join (select Jobs,ParttimerID,TotalCount From Fn_GetJobListByPID(@ParttimerID)) as j1
on p.ParttimerID=j1.ParttimerID
--在做项目
left join (select CurJobs,ParttimerID,CurCount From Fn_GetCurJobsByPID(@ParttimerID)) as j2
on p.ParttimerID=j2.ParttimerID
where p.ParttimerID=@ParttimerID

时间: 2024-08-02 03:22:39

SQL 合并多行记录的相同字段值_MsSql的相关文章

SQL 合并多行记录的相同字段值

1.从数据库中先查询符合条件的记录,存放于一个DataTable中,在使用c#等开始遍历这张表,利用DataRow中的主键,再去读取相应的符合条件的多条记录,合并这些第二次读取到的记录内容,返回给前面的这个DataRow数据行.这样做没有错,但是如果数据量大,我们可能面临无数次的打开断开数据库链接,速度效率将会很低. 2.从数据库中一次读取数据到一张表中返回并显示到UI层.说起来谁都想这么做,但是以前太笨,没有去研究这个,今天因为数据量较大的原因,让我不得不想些其他办法来提高点效率. Googl

SQL 合并多行记录的方法总汇_MsSql

SQL中合并多行记录的方法总汇: --1. 创建表,添加测试数据 CREATE TABLE tb(id int, [value] varchar(10)) INSERT tb SELECT 1, 'aa' UNION ALL SELECT 1, 'bb' UNION ALL SELECT 2, 'aaa' UNION ALL SELECT 2, 'bbb' UNION ALL SELECT 2, 'ccc' --SELECT * FROM tb /**//* id value ---------

SQL 合并多行记录的方法总汇

SQL中合并多行记录的方法总汇: --1. 创建表,添加测试数据 CREATE TABLE tb(id int, [value] varchar(10)) INSERT tb SELECT 1, 'aa' UNION ALL SELECT 1, 'bb' UNION ALL SELECT 2, 'aaa' UNION ALL SELECT 2, 'bbb' UNION ALL SELECT 2, 'ccc' --SELECT * FROM tb /**//* id value ---------

数据-SQL中将多行中的一个字段列中的数值加/号组合在一起

问题描述 SQL中将多行中的一个字段列中的数值加/号组合在一起 一张表中有以下字段,想做如下处理,将统一DJLSH下相同的GNLX的XMBH与XMMC合并成一条数据. 1401090002的DJLSH中,XMBH803膀胱的GNLX是B超,802也是B超,那么就要进行合并. 实现的效果如下: 求组各位大神! 解决方案 oracle的wmsys.wm_concat,oralce11g开始特有的listagg mysql的group_concat函数 sqlserver的xml path 都是处理你

SQL查询语句中的bool类型字段值的写法

  SQL查询语句中的bool类型字段值的写法 没有系统地看过SQL语句的写法说明,只是看了一些常用SQL语句的例子.今天写了条select * from table where sex='true',老是提示标准数据类型不匹配(我用的Access),检查了半天,原来sex字段作为bool(是/否)类型,在SQL语句中其值不需要用''引起来.

mysql合并多条记录的单个字段去一条记录编辑_Mysql

测试用表结构: 复制代码 代码如下: -- -- 表的结构 `tet` -- CREATE TABLE IF NOT EXISTS `tet` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `url` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- 转存表中的数据 `tet` -- INSERT INTO `tet` (`id`, `name`, `

Oracle 多行记录合并/连接/聚合字符串的几种方法

怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结.-什么是合并多行字符串(连接字符串)呢,例如: 1 SQL> desc test; 2 Name Type Nullable Default Comments 3 ------- ------------ -------- ------- -------- 4 COUNTRY VARCHAR2(20) Y 5 CITY VARCHAR2(20) Y 6 7

sql取重复记录 字段值最大的一条记录

sql取abc字段重复记录的a字段值最大的一条记录 select max(a),b,c from 表名 group by b,c 文件很简单吧. 关于max max() 函数 max 函数返回一列中的最大值.null 值不包括在计算中. sql max() 语法 select max(column_name) from table_name注释:min 和 max 也可用于文本列,以获得按字母顺序排列的最高或最低值. 合计函数 (比如 sum) 常常需要添加 group by 语句. group

sql server建表时设置ID字段自增的简单方法

打开要设置的数据库表,点击要设置的字段,比如id,这时下方会出现id的列属性表 列属性中,通过设置"标识规范"的属性可以设置字段自增,从下图上看,"是标识"的值是否,说明id还不是自增字段 能够设置ID字段自增的字段必须是可自增的,比如int,bigint类型,而varchar类型是不可自增的.比如查看name的列属性时,可以看到"是标识"是否且不可更改. 点击"标识规范",展开后,点击"是标识"会出现下拉