让我们来看看:
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/