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

SQL Server 2005 wypełnia tabelę przestawną zerami

Możesz użyć ISNULL() funkcjonować. Zobacz SQL Fiddle

SELECT 'lessonid          response ->'
   , isnull([0], 0) as [0]
  , isnull([1], 0) as [1]
  , isnull([2], 0) as [2]
  , isnull([3], 0) as [3]
  , isnull([4], 0) as [4]
FROM (
    SELECT lessonid AS 'lessonid          response ->'
        ,ISNULL(response,0) as response
        ,count(response) AS respcnt
    FROM tblRChoices
    GROUP BY lessonid
        ,response
    ) TableResponse
PIVOT(SUM(respcnt) FOR response IN (
            [0]
            ,[1]
            ,[2]
            ,[3]
            ,[4]
            )) ResponsePivot



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Datepart dla czasu pomiędzy (zamiast Konwertuj datę)

  2. Jak połączyć wiele wierszy o tym samym identyfikatorze w sql?

  3. Uzyskaj wiele wartości w kursorze SQL Server

  4. SQL Server 2016:Przywracanie bazy danych

  5. Jak mogę uzyskać rzeczywisty numer wiersza procedury składowanej z komunikatu o błędzie?