В Oracle SQL Developer я могу использовать:

select level as col1
    , sysdate as col2 
from dual 
connect by level < 5;

... чтобы вернуть 4 строки с col1, считающим от 1 до 4 и col2, являющимся текущей датой, без выбора из таблицы

Как я могу сделать это в SQL Server?

Изменить: мое намерение состоит в том, чтобы вернуть более 1 строки без выбора из таблицы. Возвращаемые значения не важны.

1
Austin 20 Дек 2019 в 20:18

1 ответ

Лучший ответ

В SQL Server вы обычно можете сделать это с помощью рекурсивного общего табличного выражения:

with cte as (
    select 1 as col1, getdate() as col2
    union all select col1 + 1, col2 from cte where col1 < 4
)
select * from cte

Демонстрация DB Fiddle :

col1 | col2               
---: | :------------------
   1 | 20/12/2019 17:28:37
   2 | 20/12/2019 17:28:37
   3 | 20/12/2019 17:28:37
   4 | 20/12/2019 17:28:37
2
GMB 20 Дек 2019 в 17:29