Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wybierz Records wiele razy z tabeli

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

Jeśli 4 nie jest stałą, ale (jak zauważył/zapytał @xQbert) jest liczbą wierszy tabeli, możesz użyć tego:

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

Jeśli nie masz Table1 ale każde (jakkolwiek złożone) zapytanie, możesz użyć tego dla 4 kopii:

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)

lub to dla n kopie:

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. Błąd CTE:typy nie pasują do kotwicy i części rekurencyjnej

  2. Porównanie techniczne:Microsoft Access 2016 i SQL Server 2016

  3. Zaktualizuj wartość kolumny null z wartości innej niż null w poprzednim wierszu

  4. PIVOT w kw. 2005

  5. HTTP Status 500 — Java Runtime Environment (JRE) w wersji 1.7 nie jest obsługiwane przez ten sterownik