我正在编写一个存储过程,它包含一些列上有一些函数的SQL Select查询和一个GROUP BY子句。 显然,我必须在GROUP BY中重复这些函数,这会显着降低代码可读性并增加冗余。在WHERE或GROUP BY子句中使用列表别名
到目前为止,我发现的替代方案是使用派生查询,以便可以从“顶级”查询中访问“第二级”查询中定义的别名。 我对这个解决方法感到满意,因为它增加了代码的复杂性(和缩进),我觉得我不应该使用两个查询,当我可以使用单个返回所有数据时。
我google了一下,我发现这个页面返回的子查询(+关于创建一个视图,但在大多数情况下这是矫枉过正)相同的提示。
我不能认真地认为,2010年,有没有其他的办法,尤其是与所有的精力放在代码的可重用性和可读性已经持续了好几年:会有人有一个优雅的提示我从来没有听说过(对于SQL Server 2005/2008),或者有过教育的猜测,为什么在2010年仍然应该这样做?
谢谢。
匿名。
关于SQL,请使用构建最佳执行计划并以最快速度运行的代码,而不管缩进程度如何“漂亮”或重复多少次代码。很多时候,“漂亮”的查询会严重影响速度和性能。 – 2010-02-24 14:54:17