• 締切済み

SQL-Server 6.5で最初の数行を抽出するには?

SQL-Server 6.5で最初の数行を抽出するにはどのようにすればよろしいでしょうか? Oracleの場合、 SELECT * FROM TABLE_NAME WHERE ROWNUM <= 10; JETの場合、 SELECT TOP 10 * FROM TABLE_NAME; ですが、これをSQL-Serverで行う場合をご教授下さい。

  • mfuku
  • お礼率65% (80/123)

みんなの回答

  • katuya
  • ベストアンサー率33% (38/115)
回答No.1

SQL6.0で確かめたところ、確かにどちらの構文もはじかれます。 SELECT句でヘルプを確認しましたが、この機能に関する記述はありませんでした。 ODBCを介しても同じ結果でしょうか。 確認していません。 ちなみにSQL-7のクエリアナライザでは  SELECT TOP 10 * FROM TABLE_NAME; で最初の10行が抽出できました。  SELECT TOP 10 PERCENT * FROM TABLE_NAME; と書くと最初の10%が抽出できます。 もちろんODBC経由でも同様です。 ぜんぜん役に立たない情報でしたね。失礼しました。

mfuku
質問者

お礼

6.5でも TOP句には対応してないみたいですね。 ありがとうございました。

関連するQ&A

  • DB2の行指定検索SQLについて

    select * from table where col1='X' order by col2; のようなselect文のXX行目~YYY行目の結果を返したい場合のSQLは、どのように作成すればよいのでしょうか?散々調べましたが、回答が見当たりませんでした。 どなたかご存知のかたいらっしゃいましたらご教授ください。

  • rownumを使用して・・・。

    ご相談したい事があります。 Oracle9iにて約100万件あるデータを抽出するのに一度に100万件を抽出すると時間が掛かってしまうと思い、rownumを使用して1万件単位で抽出したいのですが、SqlPlusにて以下のSQLを実行すると「レコードが選択されませんでした」と返ってきます。 SELECT * FROM tbl WHERE rownum >= 10001 AND rownum <= 20000; どうしてなのでしょうか?rownumではこのような使い方では使用できないのでしょうか? ちなみにWHERE以下を rownum >= 1 AND rownum <= 10000; にすると1万件抽出できます。 お分かりの方がいらっしゃれば、ご教授願います。

  • INで抽出した順番に並び替え(SQL)

    MySQLでINで抽出した順番で並び替えて表示したいのですが、簡単に行う方法はありませんか? [例] SELECT ID,NAME FROM TABLE WHERE ID IN (5,7,3); このSELECT文の抽出結果を5,7,3の順番に並び替えたいのです。 もちろん力技で行うこと(1つずつSELECTで抽出して表示)は可能なのですが、あまりにもスマートではないので・・・。

    • ベストアンサー
    • MySQL
  • SQL SERVER

    ORACLEの以下のようなテーブルの結合の構文を SQL SERVERでするとどのような構文になるのでしょうか? SELECT T1.T_CODE, T2.T_CODE, T2,F_NAME FROM TEST1 T1, TEST2 T2 WHERE T1.T_CODE = T2T_CODE(+)

  • 一定以上の行があれば最大値を持つ行を削除するSQL

    MySQL5にて、あるテーブルの特定フィールドの数(つまりcount値)が一定値以上であれば、間引きのため別のフィールドの値で最大値をもつ行を削除するSQLを考案中です。 イメージとしては以下の通りですが、SQLとしては誤っており、また、冗長です。 DELETE FROM table WHERE id={$id} AND (SELECT COUNT(*) FROM table WHERE id={$id}) > 5 AND begin = (SELECT MAX(begin) FROM table WHERE id={$id}); よい知恵をお授けください。

    • ベストアンサー
    • MySQL
  • oracleからSQL Serverへの移行

    oracleからSQL Serverへ移行することになったのですが、副問い合わせで定義したテーブル同士を外部結合するSQL構文が、うまく実現できず、ご教授して頂きたくよろしくお願いします。 下記、oracle 構文をSQL Server構文へ書き換えたい。 select * from (select cal1,cal2,cal3 from tbl1,tbl2 where cal1 >100) aaa, (select cal1,cal2,cal3 from tbl1,tbl2 where cal1 <=100) bbb, tbl3 where aaa.cal1 = bbb.cal1(+) and aaa.cal2 = bbb.cal2(+) and aaa.cal3 = bbb.cal3(+) and aaa.cal1 = tbl3.cal1 よろしくお願いします。

  • ORACLEで一番最初の結果だけを取る方法

    使っているオラクルのバージョンは8iです。 SQL文を投げて一番上に来る行だけを取得したいのですが、どのようなSQL文を作ればよろしいのしょうか? 例えば下のSQLを投げたらテーブル名全て返ってきますが、結果の一番上の行だけを取得したいのです。 select TABLE_NAME from all_tables よろしくお願いします。

  • Oracle SQLの、where句内の条件文について教えてください。

    Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定)   and (2)(column_nameに、●●が含まれるデータ)

  • SQLで行番号を表示する方法

    OracleのDBにSQL Plusで接続して、結果を表示します。 このとき、選択された行に1、2、3と番号を振る方法を教えてください。 Select ???, column1, column2 from table_name; ↑このSQLで、???の部分に何かを指定すると、↓こんな結果が出たと思います。 ??? column1 colmun2 ------------------------- 1 data11 data21 2 data12 data22 3 data13 data23 : : : このようにする方法があったと思うんですが、調べても見つかりませんでした。 ご存知の方がいたら教えてください。

  • SQL鯖2000でROWNUM関数

    SQL鯖2000を使用しております。 Oracle感覚で以下のSQL文を実行しようとしたところ、 select rownum 行番, tbl.* from tbl エラーが出ます。 実現可能かどうか、あるいは原因と対策を知りたいです。 お願いいたします。