テーブルにレコードを挿入(INSERT)するときに、「何行目に挿入する」とか、
「テーブルの最初に挿入する」とかって指定できますか?
もしくは、SELECT するときに、逆順に表示することは出来ますか?
できるなら、そのコマンド命令を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

myrimyriさん



こんにちは。
ORDER BY xxx DESC を使えば逆順になりますよ。
xxxはソートをかけたいフィールド名です。


SELECT *
FROM table_test
ORDER BY name DESC;
    • good
    • 0

 補足です。


 SQLには、「何行目」という概念はありません。
 たとえるなら、「レコード」という名の積み木を乱雑に箱の中に入れるのが INSERT です。
 整理は出すときに行うわけです。
    • good
    • 0
この回答へのお礼

deagleさん、
ありがとうございました!
早速やってみます。

お礼日時:2001/10/19 13:28

SELECT に関してですが


SELECT * FROM テーブル名 ORDER BY 列名 DESC
これでどうでしょうか
INSERTはよく分かりませんが
SELECT の時にソートをすればいいんじゃないですか
    • good
    • 0
この回答へのお礼

はい、ご回答ありがとうございました。
DESCを使うのは知ってたんですが、コマンドのどこに入れればいいのか
わからなかったです(^^;;; 

お礼日時:2001/10/19 13:31

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

関連するカテゴリからQ&Aを探す

このQ&Aと関連する良く見られている質問

Qoracleで別のグローバルデータベースのテーブルからPL/SQLでデータをinsertする方法。

こんにちは。

別の場所に設置してあるoracleのデータベースからinsert文でデータを引っ張って来れないかと思っています。

ご存知の方いらっしゃれば宜しくお願い致します。

内容:
ここのoracleです。
グローバルデータベース名:testa.ok.com
(データベース名:testa)
スキーマ名:output
テーブル名:名称マスタ
項目内容:番号、名前
ユーザ名:tosi
password:tosi

あっちのoracleです。
グローバルデータベース名:testb.ok.com
(データベース名:testb)
スキーマ名:input
テーブル名:名称マスタ
項目内容:番号、名前
ユーザ名:tosi
password:tosi

PL/SQLで出来ないものでしょうか?
宜しくお願い致します。

Aベストアンサー

こんにちわ。

データベースリンクを使用すれば可能です。
まず、あっちのデータベース (testb.ok.com) に接続
するための接続文字列をtnsnames.ora に定義します。
→ sqlplus tosi/tosi@接続文字列 でtestb.ok.com
  に接続できる事を確認して下さい。

次にtesta.ok.com 側にデータベースリンクを作成します。
Create database link DBリンク名
 connect tosi identified by tosi using '接続文字列';
→ select ~ from input.名称マスタ@DBリンク名
  where ~
 で、データベースリンク経由でデータにアクセスできること
 を確認して下さい。

後は、SQL 文 (PL/SQL でも可) の中で
Insert into 名称マスタ select * from
 input.名称マスタ@DBリンク名 where ~;
とすれば、Ok です。

QCSV形式のファイルを読み込んでテーブルに格納するには?(BULK INSERT、BCP、DTS)

VisualBasicのカテゴリでも質問したのですが、
こちらの方が回答がつく可能性が高いのではと思い、こちらにも書き込みました。

今、
"aaa","bbb","ccc" 
のような形で1レコードのCSVファイルがあります。
これをSQLServer2000上のテーブルに読込みたいのですが、
10件ほどの少ないレコードなら
各フィールドごとを変数に入れて読込み、
それをループさせてINSERT INTO すればよいのですが・・・。

大量の件数の場合時間がかかりすぎてしまいます。
それで、BULK INSERT、BCP、DTS などの利用を考えているのですが、

まず、何よりこの質問です。

(1)このようなファイル形式のものを上記の方法で読込めるのか?

実現可能なのかをまずお聞きしたいです。
どなたか、成功されている方はいらっしゃいますか?

(2)BCPでファイルのフォーマットを指定したファイルを用意して試みたところ、
""で区切られているため、その部分もフィールドに取り込まれてしまい、
binaryデータが切り詰められましたとなってしまいます。
この回避方法はないでしょうか?

(3)""が余計なので、これを変換して読込むことは可能ですか?
DTSはVisualBasic上からコマンドとして利用したいです。
batファイルを用意してもいいです。

困っています。どなたか助けてください。

VisualBasicのカテゴリでも質問したのですが、
こちらの方が回答がつく可能性が高いのではと思い、こちらにも書き込みました。

今、
"aaa","bbb","ccc" 
のような形で1レコードのCSVファイルがあります。
これをSQLServer2000上のテーブルに読込みたいのですが、
10件ほどの少ないレコードなら
各フィールドごとを変数に入れて読込み、
それをループさせてINSERT INTO すればよいのですが・・・。

大量の件数の場合時間がかかりすぎてしまいます。
それで、BULK INSERT、BCP、DTS などの利用を...続きを読む

Aベストアンサー

DTSインポートエクスポートウィザードを使用すれば、”を含むCSVファイルでもよ見込むことが出来ますよ。
[スタート]-[プログラム]-[Microsoft SQL Server]-[データのインポートとエクスポート]から呼び出すことも出来ます。

変換元(データのコピー元)にCSVファイル(データソース:Text File)を選択して、変換先に接続するSQLServerとデータベース名を指定して・・・
順次設定していけば、設定できますよ。
#最後にちゃんと保存してくださいね。

話は変わりますが、最初の質問から派生して関連する質問をするのであれば、ちゃんと最初の質問を終了してから新規の質問を作成してください。感じ悪いです。回答している人の気持ちを考えてください。

QAccess にて DISTINCROW を使用した INSERT SELECT

お世話様です。

Access2003 VBAにて、DoCmd.RunSQLを使用してSQL文を流す際、
普通のINSERT-SELECT文はOKですが、
そのSELECT文にDISTINCROW句を使用していると、
数百件程度のSELECT結果しかINSERTできません。
本当は数千件のSELECT結果をINSERTしたいのですが、
これを実行した場合、エラーにもならず、1レコードもINSERTされません。

ためしに、DINSTINCTROWではなく、SQL文を変更してDISTINCTにしてみたところ、
2000件以上でもINSERTできました。
DISTINCROW句を使用して数千件でもINSERTできる方法はあるでしょうか?

ちなみにSELECT単体ですと、DISTINCTROWを使用していながら、
数千件でも結果を表示できます。

SQL例:
str_SQL = " INSERT INTO 結果テーブル(フィールド1, フィールド2, フィールド3)
 SELECT DISTINCTROW A.項目1, A.項目2, B.項目1
 FROM テーブル1 A, テーブル2 B
 (WHERE句はあってもなくても現象変わらず)
 ORDER BY A.項目4 ASC, A.項目5 ASC "

DoCmd.RunSQL (str_SQL)

よろしくお願いいたします。

お世話様です。

Access2003 VBAにて、DoCmd.RunSQLを使用してSQL文を流す際、
普通のINSERT-SELECT文はOKですが、
そのSELECT文にDISTINCROW句を使用していると、
数百件程度のSELECT結果しかINSERTできません。
本当は数千件のSELECT結果をINSERTしたいのですが、
これを実行した場合、エラーにもならず、1レコードもINSERTされません。

ためしに、DINSTINCTROWではなく、SQL文を変更してDISTINCTにしてみたところ、
2000件以上でもINSERTできました。
DISTINCROW句を使用して数千件でもINSERTでき...続きを読む

Aベストアンサー

試しに

CurrentDb.Execute str_SQL

に変更してみては。

Q別テーブルからSELECTした値を持つ行を削除するSQLは?

削除 SQL がわかりません。

SQL-1
SELECT id FROM table2 WHERE date_in IS NULL;

これで取得したidを持つレコード(別テーブル)を削除したいのですが、
どうすれば組み合わさるのでしょうか?

DELETE FROM table1 WHERE id=???

Aベストアンサー

サブクエリ(副問い合わせ)を使います。

DELETE FROM table1 WHERE id IN (SELECT ~)

こんな感じです。

Q複数のテーブルを参照するselect文の書き方について

データベース初心者です。よろしくお願いいたします。

今、次のようなデータ構造を考えています。

テーブル1
  データ番号(列1)  データ名(列2)
(行1)   0     温度
(行2)   1     湿度
(行3)   2     水位


テーブル2
     時刻(列1) データ0(列2) データ1(列3) データ3(列4)
(行1) 10:00      27     37      50
(行2) 11:00      28     36      40
(行3) 12:00      29     36      35
(行4) 13:00      31     35      32


ここで、12:00の湿度データを参照したいとき、
まず、テーブル1から湿度のデータ番号を参照し、さらに、テーブル2から
データ1の数値を取り出したいと思っています。つまり、2段階でデータを
取り出したいと思っているわけです。

例えば、12:00の湿度データは36ですが、これを1行のselect文で
書く方法がありますでしょうか?

ちなみに、使おうとしているのはMySQLです。

補足が必要であればご指摘下さい。補足いたします。

よろしくお願いいたします。

データベース初心者です。よろしくお願いいたします。

今、次のようなデータ構造を考えています。

テーブル1
  データ番号(列1)  データ名(列2)
(行1)   0     温度
(行2)   1     湿度
(行3)   2     水位


テーブル2
     時刻(列1) データ0(列2) データ1(列3) データ3(列4)
(行1) 10:00      27     37      50
(行2) 11:00      28     36      40
(行3) 12:00  ...続きを読む

Aベストアンサー

つまり、

    時刻 データ名称 データ
(行1)12:00 湿度  36

というような結果が返ってくる風にしたいのですね?
この目的だとテーブル構造の方が適してないと思うな。個人的には。テーブル2の方をこう変えたい。

テーブル2’
    時刻  データ番号 データ
(行1)10:00    0    27
(行2)10:00    1    37
(行3)10:00    2    50
  ・
  ・
  ・
(行n)12:00    1    36
  ・
  ・
  ・
(行z)13:00    2    32

この構造だと、

select 2'.時刻, 1.データ名称, 2'.データ from 1, 2' where 1.データ番号=2'.データ番号 and 2'.時刻=12:00

と一発だ。どうしてもあれなら、

select 2.時刻, 1.データ名称, 2.データ1 from 1, 2 where 1.データ番号=1 and 2.時刻=12:00

とすれば出てくるかも知れない(未検証)が、select句の中を動的に作成しなければならないなど、DBシステムとして保守しづらそう・・・・。

つまり、

    時刻 データ名称 データ
(行1)12:00 湿度  36

というような結果が返ってくる風にしたいのですね?
この目的だとテーブル構造の方が適してないと思うな。個人的には。テーブル2の方をこう変えたい。

テーブル2’
    時刻  データ番号 データ
(行1)10:00    0    27
(行2)10:00    1    37
(行3)10:00    2    50
  ・
  ・
  ・
(行n)12:00    1    36
  ・
  ・
  ・
(行z)13:00    2...続きを読む


人気Q&Aランキング

おすすめ情報