2017-05-24 15 views
-4

我々は以下を参照することができますように私は別のパラメータを持つ3行4列を持つテーブルがある:1つのテーブルから一度に2行を表示するコマンドですか?

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 

私は

以下同じselectコマンドを使用して、一度に2行を表示したいです
Column1 Column2 Column3 
111   data1  124 
212   data2  100 

誰も私にテーブルから2行を選択するコマンドを教えてもらえますか?

+1

mysqlまたはOracle DB? – Jens

+0

mysqlタグが削除されました。 – Utsav

+2

期待される結果の背景にある論理は何ですか? – Jens

答えて

0

この

select top 2 * from Tablename where Column3>=124 order by Column3 

またはOracleにしてみてください:

select * from Tablename where Column3>=124 and rownum < 3; 
+0

Oracleは本当に 'top'をサポートしていますか? – jarlh

+0

select * from Tablenameここで、Column3> = 124列3の制限2 limit2 – Ravi

+0

@Ravi。 'Column3> = 124'は100を出力しません。それは間違っている。 OPはちょうどrownum <3の条件を追加するだけで動作するはずです。 – XING

0

あなたがorderを維持し、rownumを使用する必要があります。あなたの期待される出力に応じて、任意の整数に

select t.*,rownum from 
(select * From your_table 
order by column1) t 
where rownum <=2; 

変更rownum <=ような何か。ここで

DBFiddle Demo

説明:内側のクエリでorder byを使用する理由は、あなた は、そのデータベースを使用すると、挿入したのと同じ 順序で結果を返すことを保証することはできませんということです。したがって、ハードの場合order byあなたが望む順序で出力を表示するように内部の クエリを強制しています。次に、結果セットを にrownumと入力して、期待される出力を得てください。

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 

その後、再び、あなたの避難所」を提案しますtはあなたが欲しい2つの行を言ったので、私は道を離れることができました。

関連する問題