`

Sql Server 使用游标实现列转行

 
阅读更多

将表中的数据进行“列转行”,如下:

1.原表中的数据

select id,userid,username from T1

 

执行结果:


 

2.使用游标实现“列转行”

DECLARE @temp TABLE(id int,userid varchar(50),username varchar(50)) 
--定义游标并进行处理
DECLARE mycursor CURSOR LOCAL
FOR
select id,userid,username from T1
DECLARE @id int,@userid varchar(100),@username varchar(100)
OPEN mycursor
FETCH mycursor INTO @id,@userid,@username 
WHILE @@FETCH_STATUS=0
BEGIN 
    while(charindex(',',@username)<>0)  
	begin  
		insert   @temp(id,userid,username) values (@id,substring(@userid,1,charindex(',',@userid)-1),substring(@username,1,charindex(',',@username)-1))  
		set @userid = stuff(@userid,1,charindex(',',@userid),'')  
		set @username = stuff(@username,1,charindex(',',@username),'') 
	end   
	insert   @temp(id,userid,username) values (@id,@userid,@username)  
    FETCH mycursor INTO @id,@userid,@username 
END 
CLOSE mycursor
DEALLOCATE mycursor
--显示结果
SELECT id,userid,username FROM @temp

 

执行结果:


  • 大小: 16.4 KB
  • 大小: 19 KB
0
0
分享到:
评论

相关推荐

    SQL列转行显示方法

    本节详细介绍如何通过创建一个SQL存储过程来实现列转行的功能。 ##### 1. 创建存储过程 ```sql CREATE PROCEDURE [dbo].[RowToLine] as begin ... ``` 该存储过程名为`RowToLine`,其目的是将`history`表中的一列...

    SQL Server解析XML数据的方法详解

    在SQL Server中,XML数据类型提供了强大的功能,用于存储、处理和检索XML数据。本篇文章将深入探讨如何在SQL Server中解析XML数据,包括读取、遍历、删除和查找等常见操作。 首先,让我们来看如何从XML文档中读取...

    常用sql整理

    3、列转行.txt 4、BULK INSERT.txt 5、双色球.txt 6、删除完全重复数据.txt 7、快速备份.txt 8、计算table的空间使用量.txt 9、分割sql.txt 10、导出Html.txt 11、top m n.txt 12、sql替代游标.txt 13、sql查看...

    数据库文档大全

    数据库文档大全的知识点涵盖范围广泛,包括但不限于SQL的常用对象整理、SQL Server 2005/2008新语法操作、SQL查询技巧、行转列、列转行、CTE、存储过程、函数、性能调优、BI技术、面试总结以及在数据库工作中积累的...

    MySql_C 接口集合

    - **使用场景**:复位或跳转行指针,实现数据的非顺序访问。 #### 44. `mysql_row_tell()` - **功能**:返回行游标位置。 - **使用场景**:保存当前位置,以便后续`mysql_row_seek()`使用。 #### 45. `mysql_...

Global site tag (gtag.js) - Google Analytics