• ベストアンサー

sqlのクエリについて

C#からデータベースsql server 2008にデータセット、データリードする簡単なアプリを作りました sqlのクエリについて質問です リードしたデータのTOP行と最終行の2つのレコードを取得する場合どうすればいいでしょうか? select TOP A,B,C From test WHERE なら TOP行のみになってしまいます 最終行のレコードの取得方法は、いい方法が思い浮かびません。 欲しいのは、TOP行と最終行の2行のみなので、困ってしまいました。 知恵をお借り願えればと思います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

select TOP A,B,C From test WHERE ・・・ Order by A,B,C でTOP行をとっているとして select TOP A,B,C From test WHERE ・・・ Order by A desc,B desc,C desc ※desc は逆順指定。 で最終行がTOPにくるはずなので、この2件を取得すればいい。 1回のSelect文にしたいなら、 select * from (select TOP A,B,C From test WHERE ・・・ Order by A,B,C) union select * from (select TOP A,B,C From test WHERE ・・・ Order by A desc,B desc,C desc) order by A,B,C で、TOP、最後の順に取れると思いますが。 注:TOPを使っているselect文をunionしようと思うと副問い合わせにしないといけないみたい。。。

gin57773222
質問者

お礼

ありがとうございます 勉強になりました

関連するQ&A