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.

Extraer datos entre caracteres SQL

Estoy tratando de recuperar datos aleatorios entre caracteres.

Ejemplo de datos:

ABC-33-Ha8o89-00
ABC-232-Ui7380-000

De los ejemplos anteriores, estoy tratando de obtener Ha8o89 y Ui7380. Básicamente cualquier dato después de dos guiones desde la izquierda y uno desde la derecha.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener los datos deseados (es decir, Ha8o89 y Ui7380) entre los caracteres, puedes utilizar la función SUBSTRING de SQL combinada con la función CHARINDEX.

    Aquí tienes un ejemplo de consulta SQL para lograr esto:

    SELECT 
        SUBSTRING(Column_Name, 
                  CHARINDEX('-', Column_Name) + 1, 
                  CHARINDEX('-', Column_Name, CHARINDEX('-', Column_Name) + 1) - CHARINDEX('-', Column_Name) - 1
                 ) AS RandomData
    FROM Table_Name
    WHERE CHARINDEX('-', REVERSE(Column_Name)) = 2;
    

    Explicación:

    • Column_Name representa el nombre de la columna donde se almacenan los datos.
    • Table_Name representa el nombre de la tabla donde se almacenan los datos.
    • CHARINDEX('-', Column_Name) devuelve la posición del primer guion.
    • CHARINDEX('-', Column_Name, CHARINDEX('-', Column_Name) + 1) devuelve la posición del segundo guion, comenzando desde la posición del primer guion.
    • CHARINDEX('-', REVERSE(Column_Name)) devuelve la posición del último guion en orden inverso.
    • La función SUBSTRING() devuelve los caracteres entre el primer y segundo guion utilizando las posiciones devueltas por la función CHARINDEX().

    La cláusula WHERE en la consulta SQL filtra los datos que no están entre los dos primeros guiones desde la izquierda y el último guion desde la derecha.

Comments are closed.