读书人

=============SQL 查询话语==========

发布时间: 2013-09-11 16:26:28 作者: rapoo

=============SQL 查询语句===============


create table a(lszh int,hdh int)
insert into a(lszh,hdh)
select 1,null union all
select 2,1 union all
select 3,null union all
select 4,1 union all
select 5,2 union all
select 6,2 union all
select 7,null

--查询出如下结果
lszh hdh xh
1 null 1
2 1 2
3 null 3
4 1 2
5 2 4
6 2 4
7 null 5

也就是说hdh如果相同,xh就一样

[解决办法]

SELECT *,DENSE_RANK() OVER (ORDER BY hdh) xh
FROM a
ORDER BY lszh

[解决办法]

SELECT lszh,hdh,DENSE_RANK() OVER (ORDER BY CASE WHEN hdh IS NULL THEN 2000+lszh else hdh END) re
FROM a
ORDER BY lszh

读书人网 >SQL Server

热点推荐