sql server遍历表不用游标和临时表的方法


  本文标签:sql server遍历表

  sql server遍历表一般都需要用到游标和临时表,不过下面介绍的例子却不用游标和临时表就可以实现sql server遍历表,让我们一起来了解一下.

  表结构如下
  id name
---------------------------------------
  10001 sky blue water 
  10002 book apple shirt 
  10005 cup yellow org
  61245 box phone paper

  1. Create table T(id int,name varchar(50))  
  2.  
  3. insert into T select  10001,    sky blue water   
  4. insert into T select  10002 ,   book apple shirt   
  5. insert into T select  10005 ,   cup yellow org   
  6. insert into T select  61245 ,   box phone paper  
  7. GO  
  8.  
  9. SELECT  
  10.      id,  
  11.     SUBSTRING(A.name,B.number,CHARINDEX( ,A.name+ ,B.number)-B.number) AS [name]  
  12.       
  13. FROM  T as  A  
  14.     JOIN master.dbo.spt_values AS B  
  15.         ON B.type=p AND B.number BETWEEN 1 AND LEN(A.name)  
  16.             AND SUBSTRING( +A.name,B.number,1)=   
  17.  
  18. /*  
  19. id          name                                                 
  20. ----------- --------------------------------------------------   
  21. 10001       sky  
  22. 10001       blue  
  23. 10001       water  
  24. 10002       book  
  25. 10002       apple  
  26. 10002       shirt  
  27. 10005       cup  
  28. 10005       yellow  
  29. 10005       org  
  30. 61245       box  
  31. 61245       phone  
  32. 61245       paper  
  33. */  
  34.  
  35. Drop table T 

  以上就是sql server遍历表不用游标和临时表的方法介绍  。