替代字符串或执行过程以防止SQL查询代码重复的替代方法?
免责声明:作为一个只使用数据库的人,请耐心等待。(大多数时候,我会在工作中进行C ++编程,但是每个奇数月我都需要在Oracle数据库中搜索/修复/添加某些内容。) 我一再需要编写复杂的SQL查询,无论是针对临时查询还是针对应用程序内置的查询,其中大部分查询只是重复的“代码”。 用传统的编程语言编写此类可憎的代码会给您带来深重的麻烦,但是我(I)尚未找到任何体面的技术来防止SQL查询代码重复。 编辑: 1,我要感谢对我的原始示例进行了出色改进的回答者。但是,这个问题与我的示例无关。这是关于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 ( …