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

Изберете Записи няколко пъти от таблицата

SELECT Location 
FROM Table1
  CROSS JOIN
    ( VALUES (1),(2),(3),(4)
    ) AS four(dummy)

Ако 4 не е константа, но (както @xQbert забеляза/попита) е броят редове на таблицата, можете да използвате това:

SELECT a.Location 
FROM Table1 AS a
  CROSS JOIN
     Table1 AS b

Ако нямате Table1 но всяка (колкото и сложна) заявка, можете да използвате това за 4 копия:

SELECT Location 
FROM (
       SELECT Location       --- complex query here
       ...                   --- inside parenthesis
     UNION 
       SELECT Country
       ...
     ) AS Table1
  CROSS JOIN
    ( VALUES (1),(2),(3),(4)
    ) AS four(dummy)

или това за n копия:

WITH cte AS
  ( SELECT Location       --- complex query here
    ...                   --- inside parenthesis
    UNION 
    SELECT Country
    ...
  )
SELECT a.Location 
FROM cte AS a
  CROSS JOIN
     cte AS b


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възпроизвеждане на видео файл от sql сървър blob чрез ashx манипулатор с помощта на HTML5 Video Tag

  2. Подзаявки в ограничение за проверка

  3. Печат за дата и час по подразбиране на SQL Server?

  4. Добавяне на колона, ако тя не съществува към всички таблици?

  5. Как да получите първия и последния запис на група в SQL Server 2008?