Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann man einen CTE zweimal referenzieren?

Denke nicht, dass du das kannst. Von MSDN

Betonung auf „einzelne SELECT-, INSERT-, UPDATE-, DELETE- oder CREATE VIEW-Anweisung.“

Dies könnte eine Situation sein, in der Sie eine Temporäre Tabelle verwenden möchten .

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

Wenn Sie den Aufbau der Tabelle noch nicht kennen, können Sie dieses Formular verwenden, um eine temporäre Tabelle zu erstellen:

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

Sie können die temporäre Tabelle wie oben beschrieben verwenden.