with terminada tablas tabla recursivo recursividad recursivas recursiva máxima instrucción hacer finalizar español ejemplos datos como antes agotó sql recursion db2 recursive-query

terminada - Problemas con la unión recursiva de SQL en DB2



tablas recursivas mysql (1)

Dependiendo de cómo se defina TEXT, el valor final se puede truncar y luego, dependiendo del cliente que use para ejecutar la consulta, es posible que nunca lo sepa.

Pruebe a enviar TEXT a un VARCHAR más largo, por ejemplo

WITH rquery (category, sequence, sentence) AS (SELECT base.category, base.sequence, CAST( base.text AS VARCHAR(100)) FROM myTable base ...

El tipo de sentence de datos resultante debe ser lo suficientemente grande como para ajustarse a la concatenación de text más larga posible.

Soy relativamente novato con la escritura de SQL y parece que no puedo obtener el resultado correcto de mi enunciado recursivo. La tabla fuente es algo como esto:

SEQUENCE TEXT CATEGORY 1 This is apples 2 a complete apples 3 sentence. apples

El resultado que intento obtener es:

CATEGORY TEXT apples This is a complete sentence.

Sin embargo, el resultado que obtengo es:

CATEGORY TEXT apples This is a complete

No puedo concatenar esencialmente más de 2 líneas. Creo que tiene algo que ver con el recuento que he configurado en la parte recursiva de mi declaración CON.

WITH rquery (category, sequence, sentence) AS (SELECT base.category, base.sequence, base.text FROM myTable base WHERE sequence = 1 Union ALL SELECT t1.category, t1.sequence, sentence || '' '' || t1.text FROM rquery t0, myTable t1 WHERE t0.category = t1.category And t0.sequence + 1 = t1.sequence ) SELECT * FROM rquery WHERE sequence in (SELECT MAX(sequence) FROM rquery);

Si elimina la última cláusula WHERE, los resultados muestran lo que está sucediendo, pero parece que no puedo encontrar una solución para hacerlo bien. Aquí está sin la última cláusula WHERE:

CATEGORY SEQUENCE SENTENCE apples 1 This is apples 2 This is a complete apples 3 This is a complete