Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CTE
Para ver el resultado CTE usamos una consulta con un SELECT con el nombre de la expresión
CTE.
CTE no recursivos
Los CTE no recursivos son simples cuando el CTE no utiliza ninguna recursividad o
procesamiento repetido de una subrutina. Crearemos un CTE simple no recursivo para
mostrar el número de fila del 1 al 10.
Según la sintaxis de CTE, cada consulta de CTE comenzará con un “Con” seguido del nombre
de Expresión de CTE con la lista de columnas.
Aquí nosotros hemos estado usando solo una columna como ROWNO. La siguiente es la
parte de Consulta, aquí nosotros escribimos nuestra consulta de selección para que se
ejecute para nuestro CTE. Después de crear nuestra consulta CTE para ejecutar el CTE, use
la instrucción select con el nombre de Expresión CTE.
CTE recursivo
Los CTE recursivos son ciclos o bucles de procedimiento repetidos, también conocidos como
recursividad. La consulta recursiva se llama a sí misma hasta que la consulta satisfaga la
condición. En un CTE recursivo, nosotros debemos proporcionar una condición where para
terminar la recursión.
Veremos cómo crear una consulta recursiva simple para mostrar el número de fila del 1 al
10 usando un CTE.
En primer lugar, declaramos la variable Integer como” RowNo ” y establecemos el valor
predeterminado en 1 y entonces hemos creado nuestra primera consulta CTE como un
nombre de expresión, “ROWCTE”. En nuestro CTE, primero mostraremos por defecto el
número de fila predeterminado y luego usaremos Union ALL para incrementar y mostrar el
número de fila 1 en uno hasta que el número de fila alcance el valor incrementado a 10.
Para ver el resultado, usaremos una consulta de selección para mostrar nuestro resultado
CTE.
Insertar datos de muestra: Insertaremos algunos registros de muestra para usar en nuestra
consulta CTE.
Ejemplo de CTE:
Ahora nosotros crearemos un resultado temporal simple usando la consulta CTE. Aquí en
esta consulta CTE es importante ver que hemos dado el nombre de la expresión como”
itemCTE” y hemos agregado la lista de columnas que usamos en la consulta CTE. En la
consulta CTE, mostramos todos los detalles del artículo con el año.
CTE utilizando Union ALL
Consideremos a continuación que hay dos escenarios para mostrar el resultado.
1. El primer escenario es mostrar el precio de cada artículo del año actual.
2. El segundo escenario es incrementar el 10 % a cada precio de artículo para el próximo
año.
Para esto previamente usamos la consulta CTE anterior. En esta consulta, agregamos UNION
ALL y en UNION ALL Query luego hacemos un cálculo para agregar 10 % a cada precio de
artículo y lo mostramos en la siguiente fila con la adición de un año.
Seleccionar consulta: Para ver el resultado del historial del elemento, seleccionamos y
mostramos todos los detalles.
Aquí hay algunas pautas básicas que deben seguirse para escribir una buena consulta CTE.
1. Un CTE debe ir seguido de una sola instrucción SELECT, INSERT, UPDATE o DELETE
que haga referencia a algunas o todas las columnas CTE.
2. Se pueden definir múltiples definiciones de consulta CTE en un CTE que sea no
recursivo.
3. Un CTE puede hacer referencia a sí mismo y a los CTE definidos previamente en la
misma cláusula WITH
4. Podemos usar solo una cláusula con un CTE
5. Las instrucciones ORDER BY, INTO, COMPUTE o COMPUTE BY, OPTION, FOR XML no
se pueden usar en la definición de consulta CTE no recursiva
6. Las subconsultas SELECT DISTINCT, GROUP BY, HAVING, Scalar aggregation, TOP,
LEFT, RIGHT, OUTER JOIN (INNER JOIN está permitida) no se pueden utilizar en una
definición de consulta CTE recursiva.
Los CTE se pueden usar para crear una consulta recursiva y se pueden usar para hacer
referencia a sí mismos en múltiples ocasiones. Los CTE se pueden usar en lugar de las vistas
y, finalmente, un CTE es fácil y simple para facilitar la lectura y la mantenibilidad del código.