我有一个包含3行4列的表,其中包含不同的参数,如下所示:
Column1 Column2 Column3
111 data1 124
233 data3 147
254 data4 154
212 data2 100
使用选择命令
select * from Tablename where Column = 124;
我从表中获得第1行值,如下所示:
Column1 Column2 Column3
111 data1 124
我希望一次显示2行,使用与下面相同的选择命令
Column1 Column2 Column3
111 data1 124
212 data2 100
有人能告诉我从表中选择2行的命令吗?
答案 0 :(得分:0)
试试这个
select top 2 * from Tablename where Column3>=124 order by Column3
或者在Oracle中:
select * from Tablename where Column3>=124 and rownum < 3;
答案 1 :(得分:0)
您必须维护order
并使用rownum
。像
select t.*,rownum from
(select * From your_table
order by column1) t
where rownum <=2;
将rownum <=
更改为任何整数,具体取决于您的预期输出。
说明:在内部查询中使用
order by
的原因是您 不能保证数据库会返回相同的结果 订购你已经插入。所以有了硬order by
你强迫内心 查询以您想要的顺序显示输出。然后使用rownum
结果集以获得预期的输出。
答案 2 :(得分:0)
如果这是Oracle 12c,您可以使用新的fetch first n rows
语法:
with demo (column1, column2, column3) as
( select 111, 'data1', 124 from dual union all
select 233, 'data3', 147 from dual union all
select 254, 'data4', 154 from dual union all
select 212, 'data2', 100 from dual )
select * from demo
order by column3, column1
fetch first 2 rows only;
我不知道MySQL,但快速搜索建议
select ...
from sometable
order by ...
limit 2
然后你还没有说你想要哪两行,所以我可以离开。