JSPBLOG
首 页 | 风信绮缘 | 生活随笔 | 编程笔记 | 经典收藏 | English | NetWorking | 风信相册 | 风信论坛
用 户 中 心User Center disp
用户名
密码
cookies
  注册为本站会员  忘记密码
站 点 日 历Calendar disp
上一年  上一月  2010-7-30  下一月  下一年
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
31
站 点 统 计System disp
今日更新:0
日志总数:68 篇
评论总数:119 篇
注册会员:3 人
在线人数:58 人
访问人数:1272174 人次
建立日期:2007-11-25
JavaWind.Net Ad
日 志 搜 索Search disp
相 册 中 心Album disp
风 格 皮 肤
默认风格   JavaWind   JavaWind2
其 他 信 息
UTF-8 Basis Of MySQL
xhtml By DIV+CSS
rss1 rss2
Support Firefox Attribution-NonCommercial-ShareAlike 2.5
标题:SQL 存储过程使用CHARINDEX分隔逗号,间隔的数组 [2009-06-02 14:55:48]

这里假设有 一串数组变量 "appNum1,appNum2,appNum3,appNum4,appNum5,appNum6,appNum7,appNum8"

当我们需要在存储过程中遍历这个数组的子项时,我们可以通过 CHARINDEX 或者结合Left,Right来分隔和遍历它

注意:由于字符串index的计算问题,下面定义变量的时候,需要在最后面增加一个逗号",",否则遍历的时候将缺少最后一个子项

方法一:

代码
  1. declare @item varchar(50),@rowName varchar(200)  
  2. declare @m int,@n int,@i int 
  3. Set @rowName='appNum1,appNum2,appNum3,appNum4,appNum5,appNum6,appNum7,appNum8,' 
  4. Set @m=CHARINDEX(',',@rowName)  
  5. Set @n=1  
  6. Set @i=0  
  7. WHILE  @m>0  
  8.     BEGIN         
  9.         Set @item=SubString(@rowName,@n,@m-@n)  
  10.         Print Cast(@i as varchar)+'-'+@item  
  11.         Set @i=@i+1  
  12.         Set @n=@m+1       
  13.         Set @m=CHARINDEX(',',@rowName,@n)  
  14.     END 

方法二:

代码
  1. DECLARE @s varchar(4000)  
  2. DECLARE @i int 
  3. Set @i=0  
  4. SET @s='appNum1,appNum2,appNum3,appNum4,appNum5,appNum6,appNum7,appNum8,'     
  5. WHILE CHARINDEX(',',@s)>0     
  6.     BEGIN     
  7.         Print Cast(@i as varchar)+'-'+LEFT(@s,CHARINDEX(',',@s)-1)  
  8.         Set @i=@i+1    
  9.         SET @s=RIGHT(@s,LEN(@s)-CHARINDEX(',',@s))     
  10.     END 

两个方法的运行结果都是:
0-appNum1
1-appNum2
2-appNum3
3-appNum4
4-appNum5
5-appNum6
6-appNum7
7-appNum8

tags: SQL  存储过程  遍历  数组 
[作者:唧唧 | 来自:本站原创 | 分类:编程笔记 | 评论/阅读:0/180 | 引用:0]
返回页面顶部comments 主题相关评论:
本主题还没有评论,欢迎发表!
关于作者联系作者版权声明更新日志技术支持网站建设程序开发

CopyRight © 2005-2008  javawind.net  All Rights Reserved
Powered By JavaWind.Net Studio  Jsp.Blog Vesion 1.0.0 Beta1
JSP Beans Servlet Building In Resin 3.1.6, MySQL 5.1.24, Xml 2.0   By Cache.Time.DB:null.0.7
粤ICP备07511478号