gpt4 book ai didi

sql - 在 SQL 中使用 RANK() OVER 将 rank 设置为 NULL

转载 作者:行者123 更新时间:2023-12-04 06:27:47 28 4
gpt4 key购买 nike

在 SQL Server 数据库中,我有一个我对排名感兴趣的值表。

当我执行 RANK() OVER (ORDER BY VALUE DESC) 作为 RANK 时,我得到以下结果(在假设表中):

RANK | USER_ID   | VALUE
------------------------
1 | 33 | 30000
2 | 10 | 20000
3 | 45 | 10000
4 | 12 | 5000
5 | 43 | 2000
6 | 32 | NULL
6 | 13 | NULL
6 | 19 | NULL
6 | 28 | NULL

问题是,我不希望 VALUE 具有 NULL 的行获得排名 - 我需要某种方法将这些行的排名设置为 NULL。到目前为止,在网上搜索并没有给我带来关于我如何能够做到这一点的答案。

感谢您的任何帮助,您可以提供。

最佳答案

您可以尝试使用 CASE 语句:

SELECT
CASE WHEN Value IS NULL THEN NULL
ELSE RANK() OVER (ORDER BY VALUE DESC)
END AS RANK,
USER_ID,
VALUE
FROM yourtable

关于sql - 在 SQL 中使用 RANK() OVER 将 rank 设置为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676875/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com