Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да реферирам един CTE два пъти?

Не си мисли, че можеш. От MSDN

Наблягане на "единично изявление SELECT, INSERT, UPDATE, DELETE или CREATE VIEW."

Това може да е ситуация, в която искате да използвате Временна таблица .

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

Ако не знаете структурата на таблицата предварително, можете да използвате този формуляр, за да създадете временна таблица:

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

Ще можете да използвате временната таблица по начина, който сте описали по-горе.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на оператор IF ELSE въз основа на Count за изпълнение на различни оператори Insert

  2. Изтривайте само записи, по-стари от 50 реда, докато групирате по 1 колона

  3. Как да актуализирате две таблици в един израз в SQL Server 2005?

  4. Регистър на транзакциите на SQL Server — част 2

  5. 5 начина да коригирате грешката „Деление на нула“ в SQL Server (Msg 8134)