首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-09-11 
SQL 查询语句create table a(lszh int,hdh int)insert into a(lszh,hdh)sele

=============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

热点排行