Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server 2005/2008 Group By оператор с параметри без използване на динамичен SQL?

Можете да групирате по константа, което може да е полезно

SELECT
    SUM(Column0),
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE '' END AS MyGrouping
FROM
    Table1
GROUP BY
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE '' END

Редактиране:За несъответствие на типа данни и множество стойности и това ви позволява да групирате и в двете колони...

SELECT
    SUM(Column0),
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE NULL END AS Column1,
    CASE @MyVar WHEN 'Column2' THEN Column2 ELSE NULL END AS Column2
FROM
    Table1
GROUP BY
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE NULL END,
    CASE @MyVar WHEN 'Column2' THEN Column2 ELSE NULL 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. Групово вмъкване на общ списък C# в SQL Server

  2. Как OBJECTPROPERTY() работи в SQL Server

  3. е от тип, който е невалиден за използване като ключова колона в индекс

  4. Какво представляват покриващите индекси и покрити заявки в SQL Server?

  5. Как да инсталирате SQL Server на Linux