2012-04-26 127 views
0

他们是我行替换一个词(它出现两次)我需要替换最后一个。 SQL

Número Total de Clientes 
Número Total de Clientes de 
Número Total de Líquidos que se Consumen en el Hogar a la Semana 
Número Total de Líquidos que se Consumen en el Hogar a la Semana de 
Número Total de garrafones de 
Número Total de garrafones en el mercado 
Númeto Total de garrafones de 
Porcentaje Clientes que Compran por Calidad 
Porcentaje Clientes que Compran por Disponibilidad 
Porcentaje Clientesque Compran por Otros Motivos 
Porcentaje Clientesque Compran por Precio 
Porcentaje Total de garrafones de 
Porcentaje de Clientes 
Porcentaje de Clientes xxxx que Compran en la Ruta Hogar 
Porcentaje de Clientes de 
Porcentaje de Participación de Ventas de 
Porcentaje de garrafones de 

我的表名为#ope_censo_indicador

,你可以看到我有那些

Número Total de Clientes 
Número Total de Clientes de 

我需要它是 NÚMERO总去Clientes马卡报

但我得到了 Número全部de Clientes Núme RO总marcaClientes马卡报

与此查询

update #ope_censo_indicador set ope_indicadoridname=(replace(ope_indicadoridname,'%de','%marca')) 
where ope_indicadoridname like '% de' 

这些太

Número Total de Líquidos que se Consumen en el Hogar a la Semana 
Número Total de Líquidos que se Consumen en el Hogar a la Semana de 

我需要它返回

Número Total de Líquidos que se Consumen en el Hogar a la Semana 
Número Total de Líquidos que se Consumen en el Hogar a la Semana marca 

这也

Porcentaje de Clientes Porcentaje de Clientes Cristal que Compran en 
la Ruta Hogar Porcentaje de Clientes de 

我需要返回

Porcentaje de Clientes Porcentaje de Clientes Cristal que Compran en 
la Ruta Hogar Porcentaje de Clientes marca 

(我有更多的,但它会很好,我有一个查询得到了它)

后,我一定会成功。

Número Total de Clientes 
Número Total de Clientes marca 
Número Total de Líquidos que se Consumen en el Hogar a la Semana 
Número Total de Líquidos que se Consumen en el Hogar a la Semana marca 
Número Total de garrafones marca 
Número Total de garrafones en el mercado 
Porcentaje Clientes que Compran por Calidad 
Porcentaje Clientes que Compran por Disponibilidad 
Porcentaje Clientesque Compran por Otros Motivos 
Porcentaje Clientesque Compran por Precio 
Porcentaje Total de garrafones marca 
Porcentaje de Clientes 
Porcentaje de Clientes xxxx que Compran en la Ruta Hogar 
Porcentaje de Clientes marca 
Porcentaje de Participación de Ventas marca 
Porcentaje de garrafones marca 

我要去想删除这些(或者做一个查询有不同,但我需要回到这个:)

Número Total de Clientes marca 
Número Total de Líquidos que se Consumen en el Hogar a la Semana marca 
Número Total de garrafones marca 
Número Total de garrafones en el mercado 
Porcentaje Clientes que Compran por Calidad 
Porcentaje Clientes que Compran por Disponibilidad 
Porcentaje Clientesque Compran por Otros Motivos 
Porcentaje Clientesque Compran por Precio 
Porcentaje Total de garrafones marca 
Porcentaje de Clientes xxxx que Compran en la Ruta Hogar 
Porcentaje de Clientes marca 
Porcentaje de Participación de Ventas marca 
Porcentaje de garrafones marca 



enter code here 

回答

0

这是非常棘手!我假设你基本上是说你想用“marca”取代LAST“de”,但是只有当它是最后一个单词。如果它在中间,你希望保持独立。

如果这是正确的,这个代码处理:

-- Setup a temp table with "bigstring" as your text and "lastpos" as the location of LAST "de" 
DECLARE @tmp1 TABLE (bigstring varchar(1000), lastpos int) 
INSERT INTO @tmp1 (bigstring) VALUES ('Número Total de Líquidos que se Consumen en el Hogar a la Semana') 
INSERT INTO @tmp1 (bigstring) VALUES ('Número Total de Líquidos que se Consumen en el Hogar a la Semana de') 
INSERT INTO @tmp1 (bigstring) VALUES ('Leave this de one alone') 

    -- Ensure we don't have any trailing spaces 
    UPDATE @tmp1 SET bigstring = RTRIM(bigstring) 

    -- If the string ENDS in ' de' then record the starting position of that word 
    UPDATE @tmp1 SET lastpos = LEN(bigstring)-2 WHERE RIGHT(bigstring,3) = ' de' 

    -- Here is how our table looks now 
    SELECT * from @tmp1 

    -- Now, if LASTPOS is not null, we want everything to the LEFT of that + 'marca' 
    UPDATE @tmp1 SET bigstring = SUBSTRING(bigstring, 1, lastpos) + 'marca' WHERE lastpos IS NOT NULL 

    -- Done! 
    SELECT * from @tmp1 

你的第一个字符串被单独留在家中,第二个有最后的“德”与“马卡报”和一个我摆在那里替代(用“德”在中间)被单独留下。

我希望有帮助!