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

Może SQL Server PIVOT?

Ponieważ używasz SQL Server 2005, oto kod:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

To zadziała bez względu na to, ile masz różnych statusów. Dynamicznie składa zapytanie z PIVOT . Jedynym sposobem, w jaki możesz wykonać PIVOT z kolumnami dynamicznymi, jest dynamiczne składanie zapytania, co można zrobić w SQL Server.

Inne przykłady:

  • Dane przestawne w T-SQL
  • Jak zbudować podsumowanie, łącząc się z pojedynczą tabelą za pomocą SQL Server?
  • https://stackoverflow.com/q/8248059/570191


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nawigacja w dziennikach błędów serwera SQL

  2. Co to jest unikalne ograniczenie w SQL Server — SQL Server / samouczek TSQL, część 95

  3. EXISTS vs JOIN i użycie klauzuli EXISTS

  4. Wybór procesora dla SQL Server 2014 – część 1

  5. Sprawdź, czy tabela istnieje, a jeśli nie, utwórz ją w SQL Server 2008