那就是简单的字符分析啊,在程序中写个函数不就行了也可以直接用sql语句

解决方案 »

  1.   

    可以帮我写一下吗?我希望用sql语句,可以搞定吗?
      

  2.   

    DECLARE @sql varchar(8000)
    SELECT @sql = 'INSERT INTO 另一表 SELECT ''' + REPLACE(REPLACE(SUBSTRING(字段, 2, LEN(字段) - 2), '#', ''' UNION ALL SELECT '''), '*', ''', ''')  + '''' FROM 表
    EXEC(@sql)
      

  3.   

    把出错提示贴出来看看说明:另一张表的所有字段必须是varchar类型,如果不是,要用到临时表
      

  4.   

    declare @str varchar(8000)
    declare @ee varchar(5000),@len int
    set @ee='#8613*TEST*01898222200309151459210000#8613*TEST*01898222200309151459210001#8613*TEST*01898222200309151459210002#8613*TEST*01898222200309151459210003#8613*TEST*01898222200309151459210004#8613*TEST*01898222200309151459210005#8613*TEST*01898222200309151459210006#8613*TEST*01898222200309151459210007#8613*TEST*01898222200309151459210008#8613*TEST*01898222200309151459210009#8613*TEST*01898222200309151459210010#' 
    set @len=len(replace(@ee,'#8613*TEST*',' union all select '))
    select @str=substring(replace(@ee,'#8613*TEST*',' union all select '),12,@len-12)
    set @str='insert into yourtable(appdone_id) '+@str + '  go update yourtable set src_id=''8613'',received_content=''TEST'''
    exec(@str)@ee可以用你的字段替换以下就可以了。
    你试试吧,祝你成功!
      

  5.   

    忘了说了,8613和test和01898。都是不确定的,内容和长度都是不一定的。有没有什么好的方法帮它一个一个的读出来判断啊。
      

  6.   

    修改一下,再试试DECLARE @sql varchar(8000)
    SET @sql = ''
    SELECT @sql = @sql + CASE WHEN @sql = '' THEN '' ELSE ' UNION ALL ' END + 'SELECT ''' + REPLACE(REPLACE(SUBSTRING(字段, 2, LEN(字段) - 2), '#', ''' UNION ALL SELECT '''), '*', ''', ''')  + '''' FROM 表
    --PRINT @sql
    EXEC(@sql)如果要写到另外的表中,最好先建一个临时表CREATE TABLE ##tmp (c1 varchar(100), c2 varchar(100), c3 varchar(400))DECLARE @sql varchar(8000)
    SET @sql = ''
    SELECT @sql = @sql + CASE WHEN @sql = '' THEN '' ELSE ' UNION ALL ' END + 'SELECT ''' + REPLACE(REPLACE(SUBSTRING(字段, 2, LEN(字段) - 2), '#', ''' UNION ALL SELECT '''), '*', ''', ''')  + '''' FROM 表
    SELECT @sql = 'INSERT INTO ##tmp(c1, c2, c3) ' + @sql
    --PRINT @sql
    EXEC(@sql)SELECT c1, c2, c3 FROM ##tmp
      

  7.   

    to zarge(鲨至) 
    如果我要在插入表中加入另外一个字段4,字段4由我给顶,sql该怎样写啊。
    SELECT @sql = 'insert into 表(字段1,字段2,字段3) select''' + REPLACE(REPLACE(SUBSTRING(字段, 2, LEN(字段) - 2), '#', ''' UNION ALL SELECT '''), '*', ''', ''')  + ''''
      

  8.   

    先写到临时表,然后再添加到你的表insert into 你的表(字段1,字段2,字段3, 字段4) 
    SELECT c1, c2, c3, identity(int, 1, 1) as 字段4 
    FROM ##tmp