sql >> Databáze >  >> RDS >> Sqlserver

Vyberte záznamy vícekrát z tabulky

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

Pokud 4 není konstanta, ale (jak si všiml/zeptal se @xQbert) je počet řádků tabulky, můžete použít toto:

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

Pokud nemáte Table1 ale jakýkoli (jakkoli složitý) dotaz můžete použít pro 4 kopie:

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)

nebo toto pro 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. mysql - výběr hodnot z tabulky s daným číslem sloupce

  2. Pomocí SQL JOIN a COUNT

  3. Jak přimět Sequelize používat jednotné názvy tabulek

  4. Jak vytvořit VARRAY jako člena bloku PL/SQL v databázi Oracle