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