sql伪列
⑴ sql Server里有没有类似Oracle里的rownum的伪列
rownum和Dual表,应该是Oracle所特有的东西。 SQL Server和Sybase都没有这个,其它的数据库不好说。 rownum关键字,是Oracle为查询返回的行,顺序分配的编号,当然也可以作为Where条件来使用。 Dual表:也是Oracle方便查询而使用的芦森首特殊表。Oracle内部机制可以确保该表始终只有一行一列一个X值。 下陪数面是从网上找到的使春燃用临时表的方法,因为没有Sql server环境,未测试,仅供参考: select rownum=identity(int,1,1),id,name into #t from table1 select * from #t drop table #t 如果只想查询记录,可以参考下面的子查询代码: select * from 表 where id = ALL (select id from 表); select * from 表 where id <= ALL (select id from 表);
⑵ sql 查询返回满足条件的行和下一行
oracle里可以用ROWNUM伪列,写了一个例子用作参考:
with t1 as (select rownum n,a,b,lead(rownum)over(order by rownum) ne from cc)
,t2 as (select n,a,b,ne from t1 where 5 in (a,b))
select n,a,b from t2
union
select n,a,b from t1 where n in (select ne from t2)
把a,b换成你的字段,cc换成你的表名就可以了,我自己用数据测试了下,没问题。