none
Recuperar los ultimos 4 caracteres de un registro en un campo1 y asignarlo a un campo2 RRS feed

  • Pregunta

  • Hola, buenas.

    La presente es para saber como se puede extraer de un campo1, los ultimos cuatros caracteres de un registro y asignar estos 4 caracteres a un campo2.

    La situación es, que tengo una tabla de usuarios con 881 registros que debo asignarle un valor a un campo2. El valor que se tiene que asignar, es los ultimos 4 caracteres del campo1 de la misma tabla.

    Utilizo SQL Server 2005. Espero haber explicado bien la necesidad.

    Gracias de antemano por su valiosa ayuda.

    Saludos.


    Quien no conoce el pasado está condenado a repetirlo. Napoleón Bonaparte

    martes, 12 de febrero de 2019 19:01

Todas las respuestas

  • Hola Paoli_vb:

    Te pongo un par de opciones, y un ejemplo de como se puede updatear.

    declare @table table (id int, numero varchar(100), fecha datetime, campo3 char(4))
    insert into @table (id, numero, fecha)
    values
    (1,'2019-0001',getdatE()),
    (1,'2019-0001',getdatE()),
    (1,'2019-0001',getdatE()),
    (1,'2019-0001',getdatE())
    
    --opcion 1
    
    select 
    right(cast(numero as varchar(max)),4) as derechaNumero
    from @table;
    --opcion 2
    select 
    substring (cast(fecha as nvarchar(max)),len(fecha)-3,len(fecha)) as derechaFecha 
    from @table;
    --ejemplo update
    update t  set campo3 = cast(right(cast(numero as varchar(max)),4)  as char(4))
    from @table t;
    select * from @table

    Lo importante es convertir a caracteres, el contenido del campo, antes de extraerlo, e incluso al insertar.

    Salida

    • Propuesto como respuesta Pedro Alfaro martes, 12 de febrero de 2019 20:11
    martes, 12 de febrero de 2019 19:41
  • Hola, lo que puedes hacer es utilizar la función SUBSTRING:

    SELECT SUBSTRING('PERIODO',1,4) FROM TABLA1

    En lugar de 'PERIODO' colocas el campo que deseas utilizar, el resultado será: "PERI" ahora para obtener los 4 últimos, realiza la siguiente consulta:

    SELECT SUBSTRING('PERIODO',4,5) FROM TABLA1

    una vez ya obtenida la consulta realizas el UPDATE a la segunda  tabla

    INSERT INTO TABLA2 (CAMPO1) VALUES  SELECT SUBSTR('PERIODO',4,5) FROM TABLA1

    Saludos,


    Alexander Daniel Perú

    martes, 12 de febrero de 2019 19:43