sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo referenciar un CTE dos veces?

No creas que puedes. De MSDN

Énfasis en "sentencia única SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR o CREAR VISTA".

Esta podría ser una situación en la que desee utilizar una Tabla temporal .

CREATE TABLE #Recs
{
  .....
}
INSERT INTO #Recs
select *, row_number() over (order by id) as rownum from ......

Si no conoce la estructura de la tabla de antemano, puede utilizar este formulario para crear una tabla temporal:

select *, row_number() over (order by id) as rownum INTO #Recs from ......

Podrá utilizar la tabla Temporal de la forma descrita anteriormente.