こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

sqlのクエリについて

C#からデータベースsql server 2008にデータセット、データリードする簡単なアプリを作りました

sqlのクエリについて質問です

リードしたデータのTOP行と最終行の2つのレコードを取得する場合どうすればいいでしょうか?

select TOP A,B,C From test WHERE なら TOP行のみになってしまいます

最終行のレコードの取得方法は、いい方法が思い浮かびません。

欲しいのは、TOP行と最終行の2行のみなので、困ってしまいました。

知恵をお借り願えればと思います。
よろしくお願いいたします。

投稿日時 - 2012-11-17 00:18:38

QNo.7801428

困ってます

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

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しようと思うと副問い合わせにしないといけないみたい。。。

投稿日時 - 2012-11-17 01:49:11

お礼

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

投稿日時 - 2012-11-18 09:18:50

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問