- PR -

SQLServerの事で質問です。

投稿者投稿内容
時人
会議室デビュー日: 2003/10/03
投稿数: 17
投稿日時: 2003-10-03 15:28
SQLServerのSQLについての質問なのですが

テーブル TestMST
項目   ID
データ  1、2、3

の3件のみの時、IDの大きいものから2件を昇順で取得するには
どういうSQL文にすればいいでしょうか?
忍者鳥取県
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 61
お住まい・勤務地: リオネジャネイロの地下6000Km
投稿日時: 2003-10-03 15:33
私はSQLサーバを使ったことはありませんが、

こういった感じでできないのでしょうか?
select ID from TestMST where rownum <= 2 order by ID;
時人
会議室デビュー日: 2003/10/03
投稿数: 17
投稿日時: 2003-10-03 15:50
お返事ありがとうございます。

引用:

忍者鳥取県さんの書き込み (2003-10-03 15:33) より:
私はSQLサーバを使ったことはありませんが、

こういった感じでできないのでしょうか?
select ID from TestMST where rownum <= 2 order by ID;



うーん・・・ORACLEだとよかったのですが
SQLServerでの書き方が分からないです。。。
忍者鳥取県
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 61
お住まい・勤務地: リオネジャネイロの地下6000Km
投稿日時: 2003-10-03 15:54
rownum擬似列はSQLサーバで使えないんですね・・・
どうも失礼しました。m(_ _)mペコリンコ
klein01
会議室デビュー日: 2003/05/30
投稿数: 3
お住まい・勤務地: 西新宿
投稿日時: 2003-10-03 15:55
こんな感じでいかがでしょう?

select TOP 2 /* TOPにて件数指定 */
ID
from TestMST
order by ID

GO

OracleからSQL Serverへ移行した際、同じことで悩んだ覚えがあったので...
ちなみにこの"TOP"ですが、"10 Percent"のように、検索結果の何%という指定もできます。
時人
会議室デビュー日: 2003/10/03
投稿数: 17
投稿日時: 2003-10-03 16:02
お返事ありがとうございます。
引用:

select TOP 2 /* TOPにて件数指定 */
ID
from TestMST
order by ID


欲しいデータなのですが、IDの小さいものを2つでなくて
IDの大きいものを2つを昇順で取得したいのですよー。

上の例で言うと、「2、3」を取得したいのです。
klein01
会議室デビュー日: 2003/05/30
投稿数: 3
お住まい・勤務地: 西新宿
投稿日時: 2003-10-03 16:06
ソートを降順に変えるのならば「order by ID desc」にする
だけで大丈夫かと思いますが...
時人
会議室デビュー日: 2003/10/03
投稿数: 17
投稿日時: 2003-10-03 16:12
desc を入れると残念な事に取得結果が
「3、2」
になってしまうんですよー。

スキルアップ/キャリアアップ(JOB@IT)