sql 怎样用存储过程实现取分隔符间的数据
我不知道数据怎么分开,sql里又没数据,又没split()这个函数
如'1 2 3 4 5'
我想用循环来得到数据
data1=1
data2=2
data3=3
data4=4
data5=5

解决方案 »

  1.   

    len
    charindex
    等字符串处理函数
      

  2.   

    CREATE FUNCTION Taurus_CommonSplit_String
    (
    @split_string varchar(max), --要进行分解的字符串
    @tag_string varchar(10) --分解标志
    )
    RETURNS 
    @split_table TABLE 
    (
    split_value varchar(200)
    )
    AS
    BEGIN
    declare @temp_string varchar(max)
    declare @start_index int
    declare @end_index intwhile 1=1
    begin
      set @start_index = 0
      select @end_index = CharIndex(@tag_string,@split_string,@start_index)
      if @end_index <> 0
      begin
       set @temp_string = Substring(@split_string,@start_index,@end_index)
       if @temp_string is not null and @temp_string <> ''
        insert into @split_table(split_value) values(@temp_string)
       set @start_index = @end_index + 1
       set @split_string = Substring(@split_string,@start_index,len(@split_string))
      end
      else
      begin
        if @split_string is not null and @split_string <> ''
           insert into @split_table(split_value) values(@split_string)
       break
      end
    endRETURN 
    END
    自己在sql创建一个函数.然后调用该函数就可以了.函数实现如上
      

  3.   

    为什么一定要用存储过程呢,把数据取出来后在C#里面split一下不是很方面吗?存储过程用得太多,那么你的程序就和数据库耦合性就太大