让我们来看看:

SELECT Name, Surname, Salary, TaxPercentage
FROM Employees

返回:
 Name |Surname     |Salary  |TaxPercentage
--------------------------------------
Moosa | Jacobs     | $14000 | 13.5
Temba | Martins    | $15000 | 13.5
Jack  | Hendricks  | $14000 | 13.5

我希望它返回:
 Name |Surname   | Salary  |TaxPercentage
-------------------------------------------
Moosa | Jacobs   |  $14000 | NULL
Temba | Martins  |  $15000 | NULL
Jack  | Hendricks|  $14000 | 13.5

由于 TaxPercentage 的值是重复的,我希望它在最后只出现一次。

最佳答案

在sql server 2012及以上可以使用 Lead 窗口函数来获取下一行的值。假设您有某种方式对数据进行排序(如身份列),您可以利用它来发挥自己的优势:

SELECT Name,
       Surname,
       Salary,
       CASE WHEN TaxPercentage = LEAD(TaxPercentage) OVER (ORDER BY Id) THEN
         NULL
       ELSE
          TaxPercentage
       END As TaxPercentage
FROM Employees
ORDER BY Id

参见 fiddle (感谢 Lasse V. Karlsen )

关于sql - 如果值是 SQL 中的重复,如何使 select 语句返回 "NULLs",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31848388/

10-12 17:12