No.2ベストアンサー
- 回答日時:
incho0922さんのSQLに補足しいますと、
DELETE FROM A_TABLE AS A_TABLE_1 WHERE ID = ( SELECT ID FROM A_TABLE AS A_TABLE_2 ORDER BY mDate LIMIT 30 )
だと、副問い合わせの文では複数行返してしまいますので"="だとエラーになってしまいます。
ですので、
DELETE FROM A_TABLE AS A_TABLE_1 WHERE ID IN ( SELECT ID FROM A_TABLE AS A_TABLE_2 ORDER BY mDate LIMIT 30 )
ならご希望の結果が得られると思います。
ありがとうございます。
ROWNUM句はOracleでしか使えない?ようですね。
DB環境で試してみるとエラーとなりました。
"AS" で引っ掛かったのですが、以下のSQLで求める動作ができそうです。
DELETE FROM A_TABLE WHERE ID IN ( SELECT ID FROM A_TABLE AS A_TABLE_2 ORDER BY mDate LIMIT 30 )
何かありましたらご指摘頂けると助かります。
No.1
- 回答日時:
回答ではありません。
PostgreSQLには詳しくありませんし、現在手元に実行環境がありませんので、SQL一般で考えてみました。(役に立たなくてすみません^_^;)
おそらく、RowNumというフィールドがなければ、このSQL文はエラーになると思います。
MS SQLなどではSELECT文中にTOP句が使えるので、同じようなことができないかと、PostgreSQLのリファレンスを見てみたところ、LIMIT句というのがありますね。
LIMIT句を使うと、ORDER BYで並べ替えた結果の先頭30件などを取得できるので、
A_TABLEの主キーのフィールドがIDと仮定すると
SELECT ID FROM A_TABLE ORDER BY mDate LIMIT 30
で、古いものから30件が取得できますから、それをDELETE文のWHERE条件に指定したらお望みのことができそうです。
DELETE FROM A_TABLE AS A_TABLE_1 WHERE ID = ( SELECT ID FROM A_TABLE AS A_TABLE_2 ORDER BY mDate LIMIT 30 )
などとしてみたらできそうな気がしますが、なにぶん試す環境がありません。m(__)m
参考URLを載せておきますので、試してみてください。
参考URL:http://www.postgresql.jp/document/pg814doc/html/ …
ありがとうございます。
ROWNUM句はOracleでしか使えない?ようですね。
DB環境で試してみるとエラーとなりました。
"AS" で引っ掛かったのですが、以下のSQLで求める動作ができそうです。
DELETE FROM A_TABLE WHERE ID IN ( SELECT ID FROM A_TABLE AS A_TABLE_2 ORDER BY mDate LIMIT 30 )
何かありましたらご指摘頂けると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INSERTできるレコード数を制限...
-
constraint と index の違い
-
列が存在しないと言われる
-
長いSQL文を実行するには?
-
動的に生成したカラムを使ったF...
-
COPY時のtimestamp型について
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Accessのクエリでデータの入力...
-
「直需」の意味を教えてください
-
Accessファイルを作成者以外は...
-
セルの右クリックで出る項目を...
-
ACCESSに同時アクセス(編集)を...
-
ORACLEでLONG項目からCHAR項目...
-
ACCESSでの改行コード
-
ACCESSのクエリで集計で、先頭...
-
APN設定について教えていただけ...
-
作番ってどういう意味でしょうか?
-
【Access】フォームで自動計算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
0の除算
-
constraint と index の違い
-
DBから日付順に指定件数の削除...
-
alter tableすると、処理が止ま...
-
PostgreSQLで表結合+DELETEしたい
-
INSERTできるレコード数を制限...
-
COPY時のtimestamp型について
-
長いSQL文を実行するには?
-
RDB経験者向けのAccess参考書
-
Null値を無視してユニークにしたい
-
大量データを更新したら、処理...
-
INSERTできない
-
SQLite:項目が存在しない場合の...
-
powergres(postgres)にalter文...
-
DB2でUNIQUE制約を削除したい
-
SQLで特定データがNULLなら別デ...
-
【初歩】 主キー&ユニーク&AU...
-
DB2 「既存カラムへのnot null...
-
副問い合わせ
おすすめ情報