es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo crear una columna binaria basada en el carácter inicial de otra columna en Oracle SQL Developer?

Tengo una tabla como la siguiente en Oracle SQL Developer:

col1

Regio Apo
Makreg One15
Regio Kawalisz
Makreg Podl
Makrego BB
AAA

Y basado en los valores en “col1” necesito crear una nueva columna “col2”. Debe ser una columna binaria:
* Cuando el valor en “col1” comienza con “M”, retornar 1 en “col2”
* Cuando el valor en “col1” comienza con “R”, retornar 0 en “col2”
* En caso de que los valores en “col1” no comiencen ni con “M” ni con “R”, retornar NULL

Entonces, como resultado necesito algo como esto:

col1 col2

Regio Apo | 0
Makreg One15 | 1
Regio Kawalisz | 0
Makreg Podl | 1
Makrego BB | 1
AAA | NULL

¿Cómo puedo hacer eso en Oracle SQL Developer?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear la nueva columna “col2” basada en los valores de “col1”, puedes utilizar una declaración CASE:

    ALTER TABLE nombre_tabla ADD col2 NUMBER;
    
    UPDATE nombre_tabla SET col2 = 
        CASE
            WHEN col1 LIKE 'M%' THEN 1
            WHEN col1 LIKE 'R%' THEN 0
            ELSE NULL
        END;
    

    Esto agregará una nueva columna “col2” a la tabla y la llenará según las condiciones especificadas en la declaración CASE. El operador LIKE con el comodín “%” se utiliza para coincidir con valores que comienzan con “M” o “R”. Cualquier otro valor se establecerá como NULL.

Comments are closed.