数据库数据横排显示2
2015-12-31 09:37
309 查看
if object_id('#case') is not null drop table #case go create table #case( id int identity , issue_type varchar(20) null, asset_id int null) go insert into #case select 'for issue',1701335119 insert into #case(issue_type,asset_id) select 'for issue',1701335120 insert into #case(issue_type,asset_id) select 'for issue',1701335121 insert into #case(issue_type,asset_id) select 'for issue',1701335127 insert into #case(issue_type,asset_id) select 'for issue', 1701335130 insert into #case(issue_type,asset_id) select 'for21 issue',1701335131 insert into #case(issue_type,asset_id) values ('for21 issue',1701335132) insert into #case(issue_type,asset_id) values ('for21 issue',1701335135) insert into #case(issue_type,asset_id) values ('for21 issue',1701335140) go select * from #case if object_id('#t11') is not null drop table #t11 go create table #t11(issue_type varchar(20),asset_id_comb varchar(250) null) go declare @id int,@ei int,@asset_ID varchar(255),@asset_ID_tmp varchar(15),@issue_type varchar(255),@tmp varchar(255) select @id=min(id),@ei=max(id)+1 from #case select @issue_type=issue_type from #case where id=@id set @asset_ID='' set @asset_ID_tmp='' while @id<@ei begin select @tmp=issue_type,@asset_ID_tmp=convert(varchar(15),asset_id) from #case where id=@id if( @issue_type=@tmp) begin set @asset_ID=@asset_ID+'|'+@asset_ID_tmp print 'issue_type=%1!,asset_id=%2!',@issue_type,@asset_ID end else begin insert into #t11 select @issue_type,@asset_ID print '%1!,%2!',@issue_type,@asset_ID set @asset_ID='' end if @id=@ei-1 insert into #t11 select @issue_type,@asset_ID set @issue_type=@tmp set @id=@id+1 end go select * from #t11 --用update迭代 if object_id('#t1') is not null drop table #t1 go select issue_type,asset_id,ASSET_ID=convert(varchar(200), null),ProcessStep=convert( INT, NULL) into #t1 from #case order by issue_type go declare @issue_type varchar(20) ,@ASSET_ID VARCHAR(200),@Step INT -- record process step SET @Step=0 SET @ASSET_ID='' UPDATE #t1 SET ASSET_ID = CASE WHEN issue_type=@issue_type THEN convert(varchar(15),asset_id)+' | '+@ASSET_ID ELSE convert(varchar(15),asset_id) END, @ASSET_ID = CASE WHEN issue_type=@issue_type THEN convert(varchar(15),asset_id)+' | '+@ASSET_ID ELSE convert(varchar(15),asset_id) END, @issue_type = issue_type, @Step = @Step + 1, ProcessStep = @Step GO select * from #t1 group by issue_type having ProcessStep=max(ProcessStep)
相关文章推荐
- 关于MySQL密码你应该知道的那些事
- 数据库数据横排显示
- JSP使用JDBC连接MYSQL数据库的方法
- sql中去除重复的项
- DBA常用SQL之数据库基础信息
- [转]Oracle中使用Rownum分页详细例子
- MySQL timeout相关参数解析和测试
- Node.js操作SQLite3
- MySQL锁阻塞分析
- mysql原生态DDL
- 让php Session 存入 redis 配置方法
- oracle 数据库收费标准
- sql CLR
- redis安装(linux平台)
- MYSQL - SQL_MODE
- JSP使用JDBC连接MYSQL数据库的方法
- MySQL Proxy的安装及基本命令使用教程
- 用于App服务端的MySQL连接池(支持高并发)
- apache log4j将日志保存在mongodb数据库中
- Models and Algorithms behind Spark SQL