如果重复并且空白直到sql中出现不同的值,如何只显示列值一次

时间:2013-11-30 11:49:18

标签: sql sql-server sql-server-2008 tsql

enter image description here

我们有一个包含类别和预算类型列的简单表 如上图所示,我想只显示一次CATEGORY而代替下两个CATEGORY 当我使用select * query时,会出现这样的空白。

enter image description here

1 个答案:

答案 0 :(得分:9)

可以这样做:

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

但正如米卡尔所提到的那样,在大多数情况下,这确实不是应该做的。例如,只要认为客户可能想要更改类别中的排序,那么每个类别中的“第一”行将是不同的。