将表中的数据进行“列转行”,如下:
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
分享到:
相关推荐
本节详细介绍如何通过创建一个SQL存储过程来实现列转行的功能。 ##### 1. 创建存储过程 ```sql CREATE PROCEDURE [dbo].[RowToLine] as begin ... ``` 该存储过程名为`RowToLine`,其目的是将`history`表中的一列...
在SQL Server中,XML数据类型提供了强大的功能,用于存储、处理和检索XML数据。本篇文章将深入探讨如何在SQL Server中解析XML数据,包括读取、遍历、删除和查找等常见操作。 首先,让我们来看如何从XML文档中读取...
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技术、面试总结以及在数据库工作中积累的...
- **使用场景**:复位或跳转行指针,实现数据的非顺序访问。 #### 44. `mysql_row_tell()` - **功能**:返回行游标位置。 - **使用场景**:保存当前位置,以便后续`mysql_row_seek()`使用。 #### 45. `mysql_...