在SQL中使用RANK()OVER将rank设置为NULL
发布时间:2020-05-24 15:01:12 所属栏目:MsSql 来源:互联网
导读:在SQL Server数据库中,我有一个我对排名感兴趣的值表. 当我执行RANK()OVER(ORDER BY VALUE DESC)作为RANK时,我得到以下结果(在假设的表中): RANK | USER_ID | VALUE------------------------1 | 33 | 300002 | 10 | 200003 | 45
|
在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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读
