プロが教えるわが家の防犯対策術!

質問して良い内容なのか判りませんが、どなたか知っていたら教えてください。

クエリの画面で

順  氏名
1  AAA
2  BBB
3  CCC
4  DDD 
. 
.
と並んでいます。
これを「順番の項目だけ」3番から下を全部消したいのですが、並びは順番を消す前のままにしておきたいのです。
 以前、更新クエリで順番を消したら並び方がバラバラになってしまいました。
 今は一つづつ消しています。楽に出来ないでしょうか?
宜しくお願いします。

A 回答 (3件)

こんにちは


一言だけコメントさせてください。

>並びは順番を消す前のままにしておきたいのです

#2のheatherさんがお答えですが、
データベース系のソフトは、EXCEL等の表形式と違い、並び順序は指定しない
限り保証されません。
登録した順番や主キー順等にたまたま出てくるときがあるだけで、次に同じ
クエリを実行したとき、同じ結果にはならないと思った方がいいと思います。

並び替えが必要であれば、#1maruru01さんが答えている通り、ACCESSでいう
クエリデザインで並び替え(order by)を指定する項目を作る必要があります。
並び替える項目を[order_id]とすると後は

行ごと削除したいのなら
delete from テーブル名 where order_id > 3;

順をクリアしたいのなら
update from テーブル名 set 順 = Null where order_id > 3;

表示だけでいいのであれば
select * from テーブル名 where order_id <= 3 order by order_id;

のクエリを実行することになります。

もし、「順」項目そのものが並べ替えの順番に相当するのであれば、そんな
ややこしいことはせず、以下のSQL文になります。
delete from テーブル名 where 順 > 3;

すいません。一言ではなくなってしまいました。
がんばってください。
    • good
    • 0
この回答へのお礼

ありがとうございます。 
早速試してみようと思います。
 遅くなってすいませんでした。

お礼日時:2002/01/11 10:08

テーブル内に行の順番という概念は(本来は)ありません。


「氏名」がDDD以降の人を消すというのではだめなのでしょうか。

ちなみに、OracleやAccessはxx行目以降を操作させるような
"特別の"queryがあるようです。それを使えばできると思います。
    • good
    • 0

こんにちは。

maruru01です。
的を外していたらすみません。

1.まず、1つ数値フィールドを増やし、今の並び順に連番をつけます。
2.そしたら、[順]フィールドの3以下を更新クエリで消します。
3.もし順番がバラバラになったら、増やした連番のフィールドで並び替えをします。
4.最後に増やしたフィールドを削除します。

うまく出来たら幸いです。
では。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!