Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment référencer deux fois un CTE ?

Ne pensez pas que vous pouvez. Depuis MSDN

Accent mis sur "une seule instruction SELECT, INSERT, UPDATE, DELETE ou CREATE VIEW".

Il peut s'agir d'une situation dans laquelle vous souhaitez utiliser une table temporaire .

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

Si vous ne connaissez pas la structure du tableau à l'avance, vous pouvez utiliser ce formulaire pour créer un tableau temporaire :

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

Vous pourrez utiliser la table temporaire de la manière décrite ci-dessus.