당신은 당신의 테이블에 합류 십자가를 유지할 수 있습니다 : 당신이 LIMIT
SELECT 0 AS A, 1 AS B
FROM someTable a
CROSS JOIN someTable b
CROSS JOIN someTable c
CROSS JOIN someTable d
LIMIT 1000;
을 사용해야 할 수없는 경우,
SELECT TOP 1000 0 AS A, 1 AS B
FROM someTable a
CROSS JOIN someTable b
CROSS JOIN someTable c
CROSS JOIN someTable d;
나는이 SQL 서버 당신이 SSMS 태그는 사실에서 가정 오전
여기에서 문제가되는 것은 SomeTable
에 행이 1 개만있는 경우 몇 번이나 합류했는지 상관 없으며 한 행만 남게됩니다. 실제로 테이블의 값을 신경 쓰지 않고 행을 생성하는 데만 사용하려는 경우 시스템 뷰를 사용하여 필요한 것보다 많은 행이 필요하다는 것을 알 수 있습니다 (다시 SQL Server라고 가정).
SELECT TOP 1000 0 AS A, 1 AS B
FROM sys.all_objects a;
비어있는 데이터베이스에서도 sys.all_objects
에는 2083 개의 행이 있습니다. 방금 CROSS JOIN
견해 후 더해야 할 수 있습니다 :
SELECT TOP 1000 0 AS A, 1 AS B
FROM sys.all_objects a
CROSS JOIN sys.all_objects b;
이것은 당신에게 4,338,889 행을 줄 것이다.