仅显示一次列值

She*_*ock 2 sql sql-server

假设我有下表.如何根据列仅显示"金额"一次ID

   ID     Amount 
    1      10.00  
    1      10.00  
    1      10.00  
    2      10.00
    2      10.00
    2      10.00
Run Code Online (Sandbox Code Playgroud)

鉴于ff示例,预期输出应如下所示:

   ID     Amount 
    1      10.00  
    1      0.00  
    1      0.00  
    2      10.00
    2      0.00
    2      0.00
Run Code Online (Sandbox Code Playgroud)

我试过用ROW_NUMBER但不够,给我这个结果.

   ID     Amount 
    1      10.00  
    1      0.00  
    1      0.00  
    2      0.00
    2      0.00
    2      0.00
Run Code Online (Sandbox Code Playgroud)

编辑:这是我到目前为止尝试的:

SELECT ID
       ,CASE WHEN ROW_NUMBER() OVER(PARTITION BY Amount ORDER BY ID) = 1  
            THEN Amount
            ELSE 0.00
        END [AMOUNT]
FROM TABLE 
Run Code Online (Sandbox Code Playgroud)

APH*_*APH 6

只需更改您的分区即可使用ID:

SELECT ID
       ,CASE WHEN ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) = 1  
            THEN Amount
            ELSE 0.00
        END [AMOUNT]
FROM TABLE
Order by ID, Amount Desc
Run Code Online (Sandbox Code Playgroud)