やや紛らわしいタイトルで申し訳ありませんが、タイトル行で簡潔に説明したり、適切な検索文字列を思いついたりするのが難しいため、質問に対する答えを見つけるのに苦労しています. Anyhoooo、ここに私が直面している問題があります:
質問の短いバージョンは次のとおりです。Oracleが理解する有効なSQLで、次の(無効だが理解可能なSQL)をどのように記述できますか?
select B.REPLACER as COL, A.* except A.COL from A join B on a.COL = B.COL;
これが長いバージョンです(短いバージョンを読んで私が何を望んでいるかをすでに知っているなら、これを読む必要はありません:P ):
私の (簡略化された) タスクは、テーブルのデータを処理し、それをサブクエリとして提供するサービスを考え出すことです。テーブルには多くの列 (数十以上) があり、すべての列を 1 つずつ明示的にリストするのではなく、「select *」を使用することに固執しています。ただし、下流のシステムはそれを認識し、それに応じて調整します。
たとえば、このテーブル (以降、テーブル A と呼びます) には「COL」という列があり、その COL の値を、2 つの COL 値が一致するテーブル B の REPLACER 列の値に置き換える必要があります。
どうすればいいですか?下流のシステムが「COL」を想定しているため、列の名前を変更できません。「expect A.COL」の部分なしではできません。SQLがあいまいになるからです。
あなたの助けに感謝します、全能のStackOverflow
レイ