Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

wie man den Spaltenwert nur einmal anzeigt, wenn er wiederholt und leer ist, bis ein anderer Wert in SQL kommt

Sie könnten mach es so:

SELECT
    CASE WHEN ROW_NUMBER() OVER(PARTITION BY Category ORDER BY BudgetType) = 1 
    THEN Category ELSE NULL END AS 'Category Caption'
    , Category
    , BudgetType
FROM yourTable
ORDER BY Category, BudgetType

Aber wie Mikael erwähnte, ist dies – in den meisten Fällen – wirklich nicht so, wie es gemacht werden sollte. Denken Sie nur, dass der Kunde zum Beispiel die Sortierung innerhalb der Kategorien ändern möchte, dann wird die 'erste' Zeile innerhalb jeder Kategorie eine andere sein.