sql server遍历表一般都需要用到游标和临时表,不过下面介绍的例子却不用游标和临时表就可以实现sql server遍历表,让我们一起来了解一下.
表结构如下
id name
---------------------------------------
10001 sky blue water
10002 book apple shirt
10005 cup yellow org
61245 box phone paper
Create table T(id int,name varchar(50)) insert into T select 10001, 'sky blue water' insert into T select 10002 , 'book apple shirt' insert into T select 10005 , 'cup yellow org' insert into T select 61245 , 'box phone paper' GO SELECT id, SUBSTRING(A.name,B.number,CHARINDEX(' ',A.name+' ',B.number)-B.number) AS [name] FROM T as A JOIN master.dbo.spt_values AS B ON B.type='p' AND B.number BETWEEN 1 AND LEN(A.name) AND SUBSTRING(' '+A.name,B.number,1)=' ' /* id name ----------- -------------------------------------------------- 10001 sky 10001 blue 10001 water 10002 book 10002 apple 10002 shirt 10005 cup 10005 yellow 10005 org 61245 box 61245 phone 61245 paper */ Drop table T
以上就是sql server遍历表不用游标和临时表的方法介绍。