前提・実現したいこと
SQLServer, PostgreSQL で、以下のようにwithを使ったUpdate文を書いています。
SQLServerとPostgreSQLでは下のSQLでうまく動くのですが、
Oracle だとwithの構文が違うようでエラー(ORA-00928 SELECTキーワードがありません)が出てしまいます。
WITH句の中で集計関数なり「あるグループの中で最大値のレコードを絞り込み」等をやっているのでSET句の右辺に長いサブクエリを書きたくないのですが、SQLServer, Oracle, PostgreSQL で同じSQLで短く書く方法はないでしょうか?
Oracleだけ別のSQLとしないと無理でしょうか?
SQL
1WITH 2 V1 AS ( SELECT A,B FROM TABLE1 ) -- あるグループでの集計SELECT文 3 ,V2 AS ( SELECT C,D FROM TABLE2 ) -- V1とは違うグループでの集計SELECT文 4UPDATE TABLE3 5 SET Col1 = (SELECT A FROM V1 ) 6, Col2 = (SELECT C FROM V2 ) 7, Col3 = (SELECT B FROM V1 ) 8, Col4 = (SELECT D FROM V2 )
補足情報(FW/ツールのバージョンなど)
SQLServer 2012~
PostgreSQL 9.6.3~
Oracle 11gR2~

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/03 01:11