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 eliminar espacio y valor de col1 y crear una nueva columna basada en él en Teradata SQL?

Tengo una tabla en Teradata SQL como la siguiente:

col1

123 ABC Berlin
44567 ABC Rome
11 ABC New York

Y basándome en “col1”, necesito eliminar un espacio y “ABC” de la columna “col1” y solo dejar el número, el espacio y el nombre de la ciudad, por lo que el resultado debe ser algo como esto:

col1 col2

123 ABC Berlin | 123 Berlin
44567 ABC Rome | 44567 Rome
11 ABC New York | 11 New York

¿Cómo puedo hacer eso en Teradata SQL?
Tengo un código como este, pero elimina tanto el número como “ABC”, lo cual no es bueno en términos de mis requisitos: REGEXP_REPLACE(col, ‘[^ ]+ ‘, ”)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, se puede utilizar el siguiente código SQL de Teradata:

    SELECT 
      col1, 
      TRIM(REGEXP_REPLACE(col1, '[0-9]+ |ABC', '')) AS col2 
    FROM yourTableName;
    

    Explicación:

    • La función REGEXP_REPLACE reemplaza cualquier secuencia de dígitos seguida de un espacio o la cadena “ABC” con una cadena vacía, eliminándolos efectivamente del valor original de la columna.
    • La función TRIM elimina cualquier espacio al principio o al final del resultado de REGEXP_REPLACE.
    • La consulta selecciona tanto la columna original col1 como la columna modificada col2 para todas las filas de su tabla. Reemplace yourTableName con el nombre real de su tabla.

Comments are closed.