貌似有道理,但是还没写出来,能否帮忙写一个?原始字符串4段:abc;def;ghi;jkl
拆分后 插入4个字段的表中:
col1 col2 col3 col4
abc  def  ghi  jkl

解决方案 »

  1.   

    declare @s varchar(200)
    set @s='abc;def;ghi;jkl'insert into tb(col1,col2,col3,col4)
    select PARSENAME(replace(@s,';','.'),4),PARSENAME(replace(@s,';','.'),3),PARSENAME(replace(@s,';','.'),2),PARSENAME(replace(@s,';','.'),1)
      

  2.   

    n肯定不支持的,这个就是用了一些小技巧解决这个问题;
    通用的就是函数,n 可以等于 x;
      

  3.   

    既然要插入,应该知道插入几个字段吧
    试试这个满不满足CREATE FUNCTION [dbo].[f_GetStr](
        @s varchar(8000),      --包含多个数据项的字符串
        @pos int,             --要获取的数据项的位置
        @split varchar(10)     --数据分隔符
    )RETURNS varchar(1000)
    AS
    BEGIN
        IF @s IS NULL RETURN(NULL)
        DECLARE @splitlen int
        SELECT @splitlen=LEN(@split+'a')-2
        WHILE @pos>1 AND CHARINDEX(@split,@s+@split)>0
            SELECT @pos=@pos-1,
                @s=STUFF(@s,1,CHARINDEX(@split,@s+@split)+@splitlen,'')
        RETURN(ISNULL(LEFT(@s,CHARINDEX(@split,@s+@split)-1),''))
    ENDGOSELECT dbo.f_GetStr('a,b,c,d,e,f,g',5,',')---------------------------
    e(1 行受影响)
      

  4.   

    insert [table] select ''''+replace(string,';',''',''')+''''