Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/03/2011, 12:12
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Reemplazar una cadena tomando un inicio y un fin en SQL

El codigo que te pase lo que hace crea una tabla temporal(para la prueba) y en esta tabla pone la cadena que quieres remplazar, este select

select
patindex('%<SPAN STYLE="display:none">%',dato) pos1, patindex('%-->%',dato)pos2, dato, len('<SPAN STYLE="display:none">') long
from #temp


saca la posicion en donde inicia la cadena <SPAN STYLE="display:none">(pos1) y la cadena --> (pos2), ademas de que obtiene la longitud de la cadena <SPAN STYLE="display:none"> long

Con estos datos se arma el query completo:

stuff lo que hace es reemplazar una cadena empezando en una posicion con la longitud de caracteres que le indiques y la remplaza un texto a cambiar


select stuff(dato,pos1+long,pos2-long-1,'texto a cambiar') from
(
select
patindex('%<SPAN STYLE="display:none">%',dato) pos1, patindex('%-->%',dato)pos2, dato, len('<SPAN STYLE="display:none">') long
from #temp
)t1



El texto que debes de reemplazar es la cadena 'texto a cambiar'

Espero haberme explicado, saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me