
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
長いSQL文を実行するには?
-
constraint と index の違い
-
0の除算
-
「直需」の意味を教えてください
-
ACCESS検索★ある文字を複数のフ...
-
Excel 2019 のピボットテーブル...
-
Accessでテーブル名やクエリ名...
-
テーブルの存在チェックについて
-
Accessのフィールド数が255しか...
-
日本語のテーブル名、カラム名...
-
Oracle 2つのDate型の値の差を...
-
Oracleのビュー作成時に「指定...
-
Accessでコードを入れると名前...
-
Accessのクエリでデータの入力...
-
SUBSTRING 関数に渡した長さの...
-
Access クロス集計クエリについて
-
ACCESSでの改行コード
-
エクセルグラフの凡例スペース
-
Vbaでアクセスからエクセルにリ...
-
datファイルからaccessにインポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
INSERTできるレコード数を制限...
-
長いSQL文を実行するには?
-
PostgreSQLで表結合+DELETEしたい
-
constraint と index の違い
-
0の除算
-
COPY時のtimestamp型について
-
動的に生成したカラムを使ったF...
-
DBから日付順に指定件数の削除...
-
INSERTできない
-
SQLite:項目が存在しない場合の...
-
powergres(postgres)にalter文...
-
■一番最初に値が入っている(Nul...
-
カラムのデフォルト値に16進数
-
フィールドから値を読み出す
-
PostgreSQLの「not null」制約...
-
alter tableすると、処理が止ま...
-
インデックスの張り方について
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
おすすめ情報