exec('insert tb select '+replace('d2.1-2002-0226','-',','))

解决方案 »

  1.   

    exec('insert tb select '+replace('d2.1-2002-0226','-',','))
    ------------------------------------------------------服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'replace' 附近有语法错误。
      

  2.   

    declare @s varchar(100)
    set @s=' select '+replace('''d2.1-2002-0226''','-',''',''')
    exec(@s )
      

  3.   

    drop table tb
    create table tb(a varchar(100))
    insert tb
    select 'd2.1-2002-0226'declare @s varchar(100)
    set @s=' select '+replace('''d2.1-2002-0226''','-',''',''')
    exec(@s )
    (所影响的行数为 1 行)               
    ---- ---- ---- 
    d2.1 2002 0226
    结果正确;----------------------------------------------------------------
    联机言:
    REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
    不明白你的语句怎得到三字段,请问我怎通过"SELECT"来取"2002"这值?
      

  4.   

    --取得字段 就这样select substring('d2.1-2002-0226',1,charindex('-','d2.1-2002-0226')-1) as a 
           ,substring('d2.1-2002-0226'
                      ,charindex('-','d2.1-2002-0226')+1
                      ,len('d2.1-2002-0226')
                       -charindex('-','d2.1-2002-0226')-charindex('-',reverse('d2.1-2002-0226'))
                       ) as b
           ,stuff('d2.1-2002-0226',1,len('d2.1-2002-0226')-charindex('-',reverse('d2.1-2002-0226'))+1,'') as c