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 obtener cierto valor encontrado en una columna de tipo cadena?

Tengo una columna que contiene varios valores diferentes. Esto no está en formato JSON. Es una cadena que se divide en diferentes secciones. Necesito obtener todo lo que se encuentra solo debajo de ID.

En los ejemplos a continuación, solo quiero obtener la palabra: “sintaxis” y “pueblo”.

El anterior no funciona ya que esto no es un json.

¿Alguien sabe cómo obtener la palabra completa que se encuentra en la sección “id” en esa columna de cadenas?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para extraer la palabra completa encontrada bajo la sección “id” en una columna de cadena que no está en formato JSON, se puede usar la combinación de funciones como SUBSTRING, CHARINDEX y LEN. Aquí hay un ejemplo de consulta:

    SELECT SUBSTRING(nombre_de_columna,
                     CHARINDEX('"id": "', nombre_de_columna) + 7,
                     CHARINDEX('"', nombre_de_columna, CHARINDEX('"id": "', nombre_de_columna) + 7) - CHARINDEX('"id": "', nombre_de_columna) - 7)
    FROM nombre_de_tabla
    

    Esta consulta busca la posición de la primera aparición de "id": " en la columna de cadena y agrega 7 para obtener la posición de inicio del texto que necesitamos extraer. Luego, usa la función CHARINDEX nuevamente para encontrar la posición de la doble comilla de cierre (") después del texto que necesitamos y resta la posición de inicio para obtener la longitud del texto a extraer. Finalmente, usa la función SUBSTRING para obtener el texto en función de la posición de inicio y la longitud.

    Tenga en cuenta que esta consulta asume que el formato de texto es consistente en la columna de cadena y que la sección “id” siempre aparece antes de otras secciones. Si el formato varía, es posible que deba ajustar la consulta en consecuencia.

Comments are closed.