在数据库中有一张表,名为person
-----------------------
name item
-----------------------
N1 X1
-----------------------
Null X2
-----------------------
Null X3
-----------------------
N2 Y1
-----------------------
Null Y2
-----------------------
Null Y3
-----------------------
. .
. .
. .
-----------------------
我现在要从数据库中获取如下信息,请问SQL语句如何写?
-----------------------
name item
-----------------------
N1 X1
-----------------------
N1 X2
-----------------------
N1 X3
-----------------------
N2 Y1
-----------------------
N2 Y2
-----------------------
N2 Y3
-----------------------
. .
. .
. .
-----------------------
--执行查询语句
select
isnull(name ,(select top 1 name from person where item<t.item and name is not null order by name desc)) as name,item
from person t
drop table person
-----------------------
select name = (select max(name) from person where item <= a.item),item
from person a