sql存储过程里substring()和charindex()的一点技巧用法

今天学习了一点SQL存储过程,拿出来和大家分享下,本人刚学不久,如有出入还请见谅。

比如做一个学生选课系统 数据库有3张表 students(ID,Name,Age) ,courses(ID,Name),selectedcourses(studentID,courseID)括号里是字段。

下面是存储过程 根据传来的学生姓名以及选课构成的字符串,保存数据

@name nvarchar(50),

@age int,
@text nvarchar(50),-- 比如@text='1|4|15|'

AS
begin
      declare @tmp nvarchar(50)
       declare @stuid int
       declare @i int
      declare @claID int
       set @tmp=@text;
       insert into students([name],age)values(@name,@age)
     set @stuid=@@identity   --得到新增学生ID
    while(len(@tmp)>0)-----判断剩余字符串长度是否大于0。
    begin
set @i=charindex('|',@tmp)      ---- @i=2
   set @claID=substring(@tmp,1,@i-1)
-----@claid=1
    insert into SelectClasses(studentID,classID)values(@stuid,@claID);
   set @tmp=substring(@tmp,@i+1,len(@tmp)-@i)   
---@temp='4|15|'
   end
end

这样就完成了学生选课。


转载于:https://www.cnblogs.com/HiWorld/archive/2011/02/27/1966510.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值