in

SQL Server – Cómo crear una tabla usando la cláusula «Con» en SQL

apple touch icon@2

Esta no es una sintaxis válida para SQL Server. puedes crear una tabla usando CREATE TABLE y especificando los nombres y tipos de columna, o puede hacer una SELECT INTO declaración que incluye datos.

Método 1: crear la tabla y luego completar:

CREATE TABLE SalesOrdersPerYear 
( SalesPersonID int, BaseSalary float)
;

WITH Sales_CTE (SalesPersonID, BaseSalary)  
AS  
(  
    SELECT SALES_PERSON.SALES_PERSON_ID, SALES_PERSON.BASE_SALARY  
    FROM SALES_PERSON  
    WHERE SALES_PERSON_ID IS NOT NULL 
)  
insert into SalesOrdersPerYear  
SELECT SalesPersonID, BaseSalary AS TotalSales  
FROM Sales_CTE   
ORDER BY SalesPersonID, BaseSalary;  

Enfoque 2: todo en un solo paso

WITH Sales_CTE (SalesPersonID, BaseSalary)  
AS  
(  
    SELECT SALES_PERSON.SALES_PERSON_ID, SALES_PERSON.BASE_SALARY  
    FROM SALES_PERSON  
    WHERE SALES_PERSON_ID IS NOT NULL 
)  
select  SalesPersonID, BaseSalary AS TotalSales  
into SalesOrdersPerYear
FROM Sales_CTE   
ORDER BY SalesPersonID, BaseSalary;  

Utilice el enfoque 1 cuando necesite especificar más sobre la tabla (claves primarias, índices, claves extranjeras, etc.

Use el enfoque 2 para cosas que son más temporales. (normalmente usaría una tabla temporal como #SalesOrdersPerYear aquí).

De cualquier manera, los datos ahora se almacenan en su tabla y puede usarlos nuevamente.

Usando tablas temporales:

-- Check for existence and drop first to avoid errors if it already exists.
if OBJECT_ID('tempdb..#SalesOrdersPerYear') is not null
    drop table #SalesOrdersPerYear

WITH Sales_CTE (SalesPersonID, BaseSalary)  
AS  
(  
    SELECT SALES_PERSON.SALES_PERSON_ID, SALES_PERSON.BASE_SALARY  
    FROM SALES_PERSON  
    WHERE SALES_PERSON_ID IS NOT NULL 
)  
select  SalesPersonID, BaseSalary AS TotalSales  
into #SalesOrdersPerYear
FROM Sales_CTE   
ORDER BY SalesPersonID, BaseSalary;  

También puede definirlo como una variable de tabla, que es una especie de cruce entre los enfoques:

declare @SalesOrdersPerYear table
( SalesPersonID int, BaseSalary float)
;

WITH Sales_CTE (SalesPersonID, BaseSalary)  
AS  
(  
    SELECT SALES_PERSON.SALES_PERSON_ID, SALES_PERSON.BASE_SALARY  
    FROM SALES_PERSON  
    WHERE SALES_PERSON_ID IS NOT NULL 
)  
insert into @SalesOrdersPerYear  
SELECT SalesPersonID, BaseSalary AS TotalSales  
FROM Sales_CTE   
ORDER BY SalesPersonID, BaseSalary;  

Esta opción solo persistirá con este lote y no es necesario eliminarla, como cualquier otra variable.

Deja una respuesta

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

desktop icon

Compilador básico en línea – Editor básico en línea – IDE básico en línea – Codificación básica en línea – Práctica en línea básica – Ejecutar en línea básica – Compilar en línea básica

UZZuJmZtTqo392rcxN6dCa 1200 80

Las notas del parche de Demon’s Souls están siendo escritas por la comunidad después de la última actualización silenciosa