Páginas

miércoles, 15 de agosto de 2007

Reemplazar caracteres por otros en SQL

Para reemplazar un caracter por otro en sql server
la clausula utilizada es REPLACE

uso: REPLACE(cadena1, cadena2, cadena3)

cadena 1 = es el campo donde esta lo que queremos reemplazar
cadena 2 = es el string que queremos reemplazar
cadena 3 = es el string por el que vamos a reemplazar el anterior

ej: REPLACE('jose-benzan', '-', '@')

resultado = jose@benzan

En un query seria:

select replace(Concepto,'BALANCE PENDIENTE', 'CUENTAS POR COBRAR') from BalancePendiente

y para actualizar los valores de un campo:

update BalancePendiente
Set Concepto = replace(Concepto,'BALANCE PEDIENTE', 'CUENTAS POR COBRAR')

16 comentarios:

  1. olle tu eres un montro con tus tips que has puesto en la pagina me has ayudado a resoler pila de programas que tenia atrasado, gracias por tus consejos que son muy productivos.

    ResponderEliminar
  2. orale, muchisimas gracias, son las 5AM y me disponia a hacer un programa para cambiar miles de registros, no sabia que existia esa funcion, tenia que entregar resultados a las 8AM, no sabes el tiempo que me has ahorrado con uno de tus tips, de nuevo muchas gracias

    ResponderEliminar
  3. Gracias brother, te pasaste y yo k me mataba cambiando tilde x tilde mis 12 mil registros XD...

    gracias pata, sigue asi, seguire visitando tu pagina, salu2

    ResponderEliminar
  4. Muchisimas gracias por tu post, me ha venido de maravilla.
    Una cerveza virtual para ti...

    ResponderEliminar
  5. WOW... Me acabas de salvar de hacer un script de update... de 1000 registros

    ResponderEliminar
  6. Muchisimas gracias.... me acabas de salvar de hacer un update a 1000 registros jajajaja con este ahorre muuuucho tiempo!

    ResponderEliminar
  7. hola bro a mi me pasa que quiero hacer un update asi :
    update status_liquidacion set info = info+"antiguo";
    no se si se entiende lo que quiero es solo agregarle una cadena al campo "info" que diga antiguo , no eliminar el registro y poner otro sino solo concatenarle un dato mas al registro pero no consigo como hacerlo

    ResponderEliminar
  8. Muy util la información, muchas gracias!!

    ResponderEliminar
  9. para agregar la cadena seria
    update status_liquidacion set info = trim(info)||"antiguo";

    es tarde pero alguno le ha de servir.

    ResponderEliminar
  10. Gracia por el TIP, tambien me sacó de un problema, agradecido !!!

    ResponderEliminar
  11. Buenisimo, muchas gacias por este tip :D

    ResponderEliminar
  12. Saludos

    Funcionaria?

    update tickets_en set TCK_NUM = trim(13)||"BF13"; where tck_id in (
    '8512039',
    '8512040',
    '8512041'
    )

    tengo registros tck_num por ejemplo 1395826585971, y en algunos casos estan duplicados, todos comienzan con 13, la condicion seria sobre tck_id el cual es unico por cada registro

    lo que quiero es agregar un prefijo BF a tck_num cuando el Tck_id sea una lista de varios..

    actualmente hago uno por uno asi:

    update tickets_en set TCK_NUM = 'BF1392187319005' where tck_id = 8523070


    Agradezco sus comentarios y ayuda.

    Gracias

    ResponderEliminar
  13. Lo primero que debes hacer es un backup de la data y probar en el backup

    pero si lo que quieres es agregar un prefijo a algunas entradas entonces pienso que lo que puedes hacer es

    update tickets_en
    set TCK_NUM = 'BF13' + CONVERT(VARCHAR,TCK_NUM)
    where tck_id in (
    '8512039',
    '8512040',
    '8512041'
    )

    Eso le agregaria el prefijo BF13 delante de esos registros

    ResponderEliminar
  14. Hola amigo, muy bueno tus aportes. Por favor nesecito tu ayuda: lo que deseo es poder reemplazar carateres por valores numericos en un amplio texto.
    Digamos que tengo un archivo con 500 paginas y que busque y reemplace todas las letras del abecedario (a,b,c,d.....) por numeros(1.2.3.....); o los valores que yo le de; luego de eso que sume todo los valores encontrados por cada palabra reemplazada.
    Te agradeceria mucho si me ayudaras.....mi correo es jcmoriano@gmail.com

    ResponderEliminar
  15. mil gracias me sirvio, saludos desde Guatemala.

    ResponderEliminar
  16. Gracias hermano, me sirvio par corregir 40000 registro en 2 minutos.

    saludos;

    ResponderEliminar