INSERT INTO Box_M (DwgNo)
 SELECT replace(DwgNo,' ','')FROM Box_M_Tmp

解决方案 »

  1.   

    replace(DwgNo,' ','')  就是这块怎么写
      

  2.   

    declare @str nvarchar(100)
    set @str = N'a: CA 0 CB 0 CE 0 CE1 13.8'while patindex('%[ ][0-9]%',@str)>0 
    set @str=stuff(@str,patindex('%[ ][0-9]%',@str),1,'=')while patindex('%[0-9][ ]%',@str)>0
    set @str=stuff(@str,patindex('%[0-9][ ]%',@str)+1,1,';')select @str
      

  3.   

    select replace('CA 0',' ','=')
    -----------------------------------
    replace(DwgNo,' ','=')
      

  4.   

    zsforever(虎虎) 那如何写到 
    INSERT INTO Box_M (DwgNo)
     SELECT replace(DwgNo,' ','')FROM Box_M_Tmp
    因为该表共有几万条记录需要更改
      

  5.   

    你把那个写成函数,调用下 dbo.函数名(字段)
      

  6.   

    zsforever(虎虎)
    REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )'string_expression2'  不能带通配符的吧 ^_^
      

  7.   

    zsforever(虎虎)    
         谢谢!
    看来要用11个REPLACE 才能解决问题了 哈哈
      

  8.   

    我没用replace啊,不明白你说的意思
      

  9.   

    CREATE  FUNCTION [dbo].[getNF] (@str varchar(100))
    RETURNS varchar(100) AS  
    BEGIN 
    while patindex('%[ ][0-9]%',@str)>0 
    set @str=stuff(@str,patindex('%[ ][0-9]%',@str),1,'=')while patindex('%[0-9][ ]%',@str)>0
    set @str=stuff(@str,patindex('%[0-9][ ]%',@str)+1,1,';')
    return @str
    END 
    INSERT INTO Box_M (DwgNo)
     SELECT dbo.getNF(DwgNo)FROM Box_M_Tmp
    这样就可以了,你在说什么我没明白
      

  10.   

    谢谢了,我已经照你说的做了
    我原先打算用replace解决的
    再次感谢
      

  11.   

    #A P366705B000 A G02#A=P366705B000;A=G02怪我没说清楚 ,还有这种情况呢
      

  12.   

    #A P366705B000F A G02D#A=P366705B000F;A=G02D
      

  13.   

    换个函数,看看还有没有例外的
    CREATE  FUNCTION [dbo].[getNF] (@str varchar(100))
    RETURNS varchar(100) AS  
    BEGIN 
    while patindex('%[ ][0-9,A-Z]%',@str)>0 
    begin
    set @str=stuff(@str,patindex('%[ ][0-9,A-Z]%',@str),1,'=')
    if patindex('%[0-9,A-Z][ ]%',@str)>0
    set @str=stuff(@str,patindex('%[0-9,A-Z][ ]%',@str)+1,1,';')
    end
    return @str
    END 
      

  14.   

    CREATE   function GetPDef(@PDef varchar(500))
    RETURNS VARCHAR(250)
    AS
    BEGINDECLARE @TF bit
    SET @TF=0
    while patindex('%[ ]%',@str)>0 
    begin
    IF @TF=0
    BEGIN
    set @str=stuff(@str,patindex('%[ ]%',@str),1,'=')
    SET @TF=1
    END
    ELSE
    BEGIN
    set @str=stuff(@str,patindex('%[ ]%',@str),1,';')
    SET @TF=0
    END
    endRETURN @PDef
    END