2014-10-22 59 views
-2

假设我有与它看起来像一列的表:输出元件

SELECT Col1 
FROM table; 


Col1 
A 
A 
B 
B 
C 
C 
D 
B 
E 
B 
F 

我想是“B” s,这是C,d,E 如何之间,以输出元件我可以用查询做到吗?

+3

简短的回答,你不能。如果您没有什么可以订购的东西,那么在两行之间就没有“,因为您得到的订单是伪随机的。如果你添加一个ORDER BY到你的查询中,这是可行的。 – 2014-10-22 10:29:16

回答

1
declare @t table (ID INT IDENTITY(1,1),col1 VARCHAR(10)) 
insert into @t (col1) values ('A') 
insert into @t (col1) values ('A') 
insert into @t (col1) values ('B') 
insert into @t (col1) values ('B') 
insert into @t (col1) values ('C') 
insert into @t (col1) values ('C') 
insert into @t (col1) values ('B') 
insert into @t (col1) values ('E') 
insert into @t (col1) values ('B') 
insert into @t (col1) values ('F') 

select ID,col1 from @t 
where ID between (select MIN(id) from @t WHERE col1 = 'B') and 
(select MAX(id) from @t WHERE col1 = 'B') 
and col1<>'B'