sql >> Database >  >> RDS >> Sqlserver

Procedure voor het maken van een tabel met een variabel aantal kolommen

DECLARE @sSQL varchar(max),
  @ColumnName CHAR(128)

DECLARE TableCursor CURSOR FOR
  SELECT ColumnName FROM GroupTable

SET @sSQL = 'CREATE TABLE ##NewTempTable ('

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @ColumnName

WHILE @@FETCH_STATUS = 0
BEGIN 

SET @sSQL = @sSQL + RTRIM(@ColumnName) + ' CHAR(10) ,'

FETCH NEXT FROM TableCursor INTO @ColumnName

END

CLOSE TableCursor

DEALLOCATE TableCursor

SET @sSQL = @sSQL + ')'

EXEC (@sSQL)

SELECT * FROM ##NewTempTable

Ik hoop dat dit helpt. In de DECLARE CURSOR moet u de "ColumnName" en "TableName" wijzigen in uw werkelijke kolom/tabel die u opvraagt.



  1. Waarom krijg ik een ander resultaat als ik inner join gebruik?

  2. Kan ik een bijgewerkte structuur in een MySQL-tabel importeren zonder de huidige inhoud te verliezen?

  3. Hoe procent berekenen?

  4. Datumbereiken zoeken en optellen met overlappende records in postgresql