SQLクエリコードの繰り返しを防ぐために、文字列を連結したり、手続きを行ったりする代わりになりますか?
免責事項:データベースを使用する作業時間のごく一部としてのみ、私と一緒に我慢してください。(ほとんどの場合、仕事でC ++プログラミングを行いますが、奇数月ごとにOracleデータベースで何かを検索/修正/追加する必要があります。) アドホッククエリとアプリケーションに組み込まれたクエリの両方で、クエリの大部分が「コード」を繰り返しただけの複雑なSQLクエリを繰り返し書く必要がありました。 伝統的なプログラミング言語で、そのような憎むべきを書く深いトラブルにあなたを得るでしょう、まだI(Iは)まだSQLクエリコードの繰り返しを防ぐために、まともな手法を見つけることができませんでした。 編集:最初に、元の例に優れた改善を提供してくれた回答者に感謝します。ただし、この質問は私の例に関するものではありません。SQLクエリの反復性についてです。そのため、これまでの回答(JackP、Leigh)は、より良いクエリを作成することで反復性を減らすことができることを示す素晴らしい仕事をしています。ただし、その場合でも、明らかに削除できない反復性に直面します。これは、常にSQLに悩まされます。「従来の」プログラミング言語では、コードの反復性を最小限に抑えるためにかなり多くのリファクタリングを行うことができますが、SQLでは、これを可能にする(?)ツールはないようです。 Oracleタグを再度削除したことに注意してください。これは、データベースやスクリプト言語が存在しないかどうかに興味があるためです。 今日私が一緒に石畳を作ったそのような宝石の一つです。基本的に、単一のテーブルの列セットの違いを報告します。次のコードをざっと読んでください。最後に大きなクエリ。以下に続きます。 -- -- Create Table to test queries -- CREATE TABLE TEST_ATTRIBS ( id NUMBER PRIMARY KEY, name VARCHAR2(300) UNIQUE, attr1 VARCHAR2(2000), attr2 VARCHAR2(2000), attr3 INTEGER, attr4 NUMBER, attr5 VARCHAR2(2000) ); -- -- insert some test data -- insert into TEST_ATTRIBS values ( 1, …