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

Cross Join „n” razy przy stole

Używając dynamicznego SQL, SQL Server 2005+ (@nazwa_tabeli i @numCrossJoins są parametrami procedury składowanej):

DECLARE @upperLimit INT
    SET @upperLimit = 1

DECLARE @SQL NVARCHAR(MAX)
    SET @SQL = 'SELECT * FROM '+ @table_name +' '

BEGIN 

  WHILE (upperLimit <= @numCrossJoins)
  BEGIN

    SET @SQL = @SQL + 'CROSS JOIN '+ QUOTENAME(@table_name) +' '

    SET @upperLimit = @upperLimit + 1
  END

  EXEC sp_executesql @SQL

END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pomijanie milisekund w randce

  2. Wybierz wartości kolumn jako kolumny za pomocą PIVOT

  3. Jak wdrożyć SQL Server Compact Edition 4.0?

  4. Dlaczego klauzula „Top” może prowadzić do długotrwałych kosztów

  5. Jaka jest kolejność wykonywania tej instrukcji SQL?