Welcome to Our Website

SQL Server Cte (Español)

Resumen: En este tutorial, aprenderá sobre la expresión de tabla común o CTE en SQL Server utilizando la cláusula WITH.

Introducción a CTE en SQL Server

CTE significa expresión de tabla común. Una CTE permite definir un nombre temporal conjunto de resultados disponibles de forma temporal en el ámbito de la ejecución de una instrucción como SELECT, INSERT, UPDATE, DELETE o MERGE.,

lo siguiente muestra la sintaxis común de un CTE en SQL Server:

Code language: SQL (Structured Query Language) (sql)

en esta sintaxis:

  • Primero, especifique el nombre de la expresión (expression_name) al que puede referirse más adelante en una consulta.
  • a continuación, especifique una lista de columnas separadas por comas después de expression_name. El número de columnas debe ser el mismo que el número de columnas definido en el CTE_definition.
  • Luego, use la palabra clave AS después del nombre de la expresión o la lista de columnas si se especifica la lista de columnas.,
  • Después, defina una instrucción SELECT cuyo conjunto de resultados rellena la expresión de tabla común.
  • Finalmente, se refieren a la expresión de tabla común en una consulta (SQL_statement) como SELECT, INSERT, UPDATE, DELETE o MERGE.

preferimos usar expresiones de tabla comunes en lugar de usar subconsultas porque las expresiones de tabla comunes son más legibles., También utilizamos CTE en las consultas que contienen funciones analíticas (o funciones de ventana)

ejemplos de CTE de SQL Server

tomemos algunos ejemplos de uso de expresiones de tabla comunes.

a) ejemplo simple de CTE de SQL Server

Esta consulta utiliza un CTE para devolver las cantidades de ventas por personal de ventas en 2018:

la siguiente imagen muestra el conjunto de resultados:

en este ejemplo:

  • Primero, definimos cte_sales_amounts como el nombre de la expresión de tabla común., el CTE devuelve un resultado que consta de tres columnas staff, year y sales deriva de la definición de la consulta.
  • En segundo lugar, construimos una consulta que devuelve el monto total de ventas por personal de ventas y Año consultando datos de las tablas orders, order_items y staffs.
  • En tercer lugar, nos referimos al CTE en la consulta externa y seleccionamos solo las filas cuyo año es 2018.,

señaló que este ejemplo es únicamente para el propósito de demostración para ayudarlo a comprender gradualmente cómo funcionan las expresiones de tabla comunes. Hay una forma más óptima de lograr el resultado sin usar CTE.

B) Uso de una expresión de tabla común para hacer promedios de informes basados en recuentos

este ejemplo utiliza el CTE para devolver el número promedio de órdenes de venta en 2018 para todo el personal de ventas.

Aquí está la salida:

Code language: SQL (Structured Query Language) (sql)

en este ejemplo:

primero, usamos cte_sales como el nombre de la expresión de tabla común., Nos saltamos la lista de columnas de la CTE por lo que se deriva de la declaración de definición de CTE. En este ejemplo, se incluye staff_id y order_count columnas.

en segundo lugar, utilizamos la siguiente consulta para definir el conjunto de resultados que rellena la expresión de tabla común cte_sales. La consulta devuelve el número de pedidos en 2018 por personal de ventas.

En tercer lugar, nos referimos a la cte_sales en la instrucción externa y utilizamos la función AVG() para obtener la orden de venta promedio de todo el personal.,

Code language: SQL (Structured Query Language) (sql)

C) usando varios CTE de SQL Server en un solo ejemplo de consulta

el siguiente ejemplo utiliza dos CTE cte_category_counts y cte_category_sales para devolver el número de productos y ventas para cada categoría de producto. La consulta externa une dos Cte usando la columna category_id.,

Aquí está el conjunto de resultados:

en este tutorial, ha aprendido a usar expresiones de tabla comunes o CTE en SQL Server para construir consultas complejas de una manera fácil de entender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *