sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2005/2008 Group By-sætning med parametre uden brug af dynamisk SQL?

Du kan gruppere på en konstant, hvilket kan være nyttigt

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

Rediger:For datatype uoverensstemmelse og flere værdier, og dette giver dig mulighed for at gruppere på begge kolonner...

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. Opdater flere kolonner for flere rækker i én SQL-forespørgsel

  2. Hvorfor kan jeg ikke bruge dense_rank til SQL 'rank scores'?

  3. MySQL Math - Er det muligt at beregne en korrelation i en forespørgsel?

  4. En introduktion til MySQL-datatyper