• Domingo 22 de Diciembre de 2024, 18:39

Autor Tema:  Modificación condicionada de un campo  (Leído 1406 veces)

nekcab

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Modificación condicionada de un campo
« en: Domingo 5 de Junio de 2011, 14:16 »
0
Buenas foro:

Hasta ahora, lo máx.que había realizado para modificaciones masivas en mi B.D. era bien:
-Búsqueda de un caracter determinado y modificar única y exclusivamente ese -- update titulos set artist=replace(artist,'├í','á'); --
-Mediante el clásico UPDATE / WHERE

Lo que ahora me tiene ocupado es:
Tengo un campo cuyo formato en todas sus tuplas es siempre muy parecido:
Soundtrack 1 DvD
Soundtrack 2 DvD
....
Soundtrack 23 DvD
....

OK. Pues lo que estoy intentando es que aquellos que tengan el formato:
Soundtrack 1 DvD
pasen a ser:
Soundtrack 01 DvD
Y solo, única y exclusivamente aquellos con un único caracter.

Evidentemente implicará el uso de IF, y los pasos serían:
1º Situarse en el campo determinado (dvd)
2º Que se cumpla la condición:
WHERE dvd LIKE 'Soundtrack _ DvD'
3º Situar el puntero en la posición nº12 de dicho campo
4º Crear una variable temporal
4º Copiar contenido de dicha posición en dicha variable
5º Agregar un '0'
6º Agregar a continuación contenido de la variable

Llevo un buen rato googleando para saber, por ejemplo:
-como se crea una variable
-como manejar un posible 'puntero' con el que situarme
-como copiar el contenido donde apunta dicho puntero en la variable antes creada

Ya, ya, estoy muy verde. Y entiendo que soy un candidato perfecto para q ni se molesten en responder.

Mi ideal sería que algo tan simple como:
update titulos set dvd like 'Soundtrack 0_ DvD' where dvd like 'Soundtrack _ DvD';
Pero claro, entiendo que la orden SET debe ser concreta, y el parámetro LIKE como que .... ¡NO!

¿Por donde empezar? (como habeís detectado, no voy a hacer un uso muy intenso de programación en Postgre, pero si querría al menos hacer 4 cosillas básicas. Pq ya voy viendo como el amigo IF puede sacarte de más de un compromiso en mi B.D.)

Muchas gracias.