【发布时间】:2010-02-24 14:29:24
【问题描述】:
我正在编写一个包含 SQL Select 查询的存储过程,该查询在某些列上具有一些函数和一个 GROUP BY 子句。 显然,我必须在 GROUP BY 中重复这些函数,这会大大降低代码的可读性并增加冗余。
到目前为止,我发现的另一种方法是使用派生查询,这样我就可以从“顶级”查询访问“二级”查询中定义的别名。 我对这种解决方法感到相当满意,因为它增加了代码复杂性(和缩进),而且我觉得当我可以使用一个查询返回所有我想要的数据时,我不应该使用两个查询。
我用谷歌搜索了一下,发现这个页面返回了关于子查询的相同提示(+ 一个关于创建视图的提示,但在大多数情况下这太过分了)。
我不敢相信,在 2010 年,没有其他方法,尤其是多年来一直关注代码可重用性和可读性:有人有我从未听说过的优雅技巧吗? (对于 SQL Server 2005/2008),或者对为什么在 2010 年仍应以这种方式进行有根据的猜测?
谢谢。
匿名。
【问题讨论】:
-
对于 SQL,无论缩进有多“漂亮”或重复琐碎的代码行多少次,都使用构建最佳执行计划并因此运行速度最快的代码.很多时候,“漂亮”的查询会极大地影响它的速度和性能。
标签: sql sql-server group-by alias