当前位置: 代码迷 >> Sql Server >> 一条容易的查询语句
  详细解决方案

一条容易的查询语句

热度:79   发布时间:2016-04-24 08:45:52.0
一条简单的查询语句
本帖最后由 zjroland 于 2015-08-09 12:06:35 编辑
比如我有一个城市数据库 cities_cities
cityId  cityname  province
1          北京           北京
2          上海          上海
3          石家庄      河北        
4          邢台           河北
5          邯郸            河北
6          保定             河北
7          唐山             河北
我要从province为河北的里面选第三个,也就是“ 邯郸 ”,应该怎么写查询语句?

SELECT TOP 3 FROM cities_cities WHERE Province='河北' 好像不行,会有三个结果,我只要一个 邯郸 。

------解决思路----------------------
create table #cities_cities
(
cityId int,
cityname varchar(20),
province varchar(20)
)
go
insert into #cities_cities
select 1,'北京','北京' union all
select 2,'上海','上海' union all
select 3,'石家庄','河北' union all
select 4,'邢台','河北' union all
select 5,'邯郸','河北' union all
select 6,'保定','河北' union all
select 7,'唐山','河北'

;WITH CTE AS
(
SELECT ROW_NUMBER() OVER(PARTITION BY province ORDER BY cityId) AS ROW,*
FROM #cities_cities
)
SELECT * FROM CTE WHERE province='河北' AND ROW=3


ROW                  cityId      cityname             province
-------------------- ----------- -------------------- --------------------
3                    5           邯郸                   河北

(1 行受影响)

------解决思路----------------------
按照province rownumber之后取出等于3的就可以了
  相关解决方案