首页 > 解决方案 > 在复杂查询中查找相关的 SELECT 子句

问题描述

我有一个很长很复杂的查询。它包括很多子查询。连接所有这些子查询非常困难。

我有一个WHERE子句不能分配给相应的SELECT.

有没有一种工具可以对它进行颜色突出显示以找到SELECTWHERE子句?

标签: sql-servertsql

解决方案


我个人不知道有一个工具可以突出匹配where子句及其相关的select. Redgate SQL 提示确实包含某些突出显示功能,但并非专门针对此功能,它是目前功能最齐全的工具之一。

所以我没有你的具体问题的答案(“有一个工具......”),但我想我仍然可以帮助你,但是以图像形式提供这种帮助会容易得多评论,因此答案而不是评论..

用竖河观察格式化sql的奇观!

用垂直河流观察格式化sql的奇观

我已经在启用 redgate sql 提示突出显示的情况下截取了这个屏幕截图,向您展示了它确实突出显示的一些内容,这可能会有所帮助:子查询别名在使用时突出显示。显然,在这种情况下,这是非常微不足道的,因为它们彼此相邻,但您可以想象一些更大的查询,这实际上是一个有用的指示。

select但是要注意的主要事情是,当每个查询和子查询的andfromwhere等对齐时,理解查询的结构是多么容易。

是的,如果你有很多很多层次的嵌套,这会占用更多的水平空间。当然你可以用更小的缩进做类似的事情,但这是我个人的风格,我几乎不能再读其他任何东西了。此外,如果嵌套深度为 3 或 4 层,就会发生奇怪的事情,很少需要这样做。在这些情况下,您总是可以将子查询转换为 CTE。


推荐阅读