あなたはできた このようにします:
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
しかし、ミカエルが述べたように、これは-ほとんどの場合-実際にはそれが行われるべき方法ではありません。たとえば、クライアントがカテゴリ内の並べ替えを変更したい場合は、各カテゴリ内の「最初の」行が異なるものになると考えてください。