在SQL查询中查找重复的代码块

时间:2018-11-27 09:17:49

标签: sql

是否有任何工具可以突出显示sql查询中的重复代码块,以便可以将这些代码块编写一次,然后将该定义与别名一起使用。

例如:

SUM(od.Number01) OVER (ORDER BY od.Number01)
is repeated many times in the query
.
..
..
(rd.OurQty - SUM(od.Number01) OVER (ORDER BY od.Number01) AS 'Stock'
..
..
..
..
CASE WHEN (rd.OurQty - SUM(od.Number01) 
OVER (ORDER BY od.Number01) + od.Number01) - od.Number01 > 0 THEN od.Number01 ELSE (CASE WHEN (rd.OurQty - SUM(od.Number01) OVER (ORDER BY od.Number01) 
+ od.Number01) > 0 THEN (rd.OurQty - SUM(od.Number01) OVER (ORDER BY od.Number01) + od.Number01) ELSE 0 END) END AS 'Allocated'

我想确定SUM(od.Number01) OVER (ORDER BY od.Number01)在查询中使用了多少次。

1 个答案:

答案 0 :(得分:0)

在这种情况下,它们是正确的-只需按Ctrl + f。

如果要检查很多SQL查询,则可能需要查看其他内容。 不确定代码分析工具是否也检查sql?有些人可能只是文本而已,但是问题是如果他们只是检查文本,就可能不考虑空格或换行符。

或者,您可以调出自己的代码来搜索所有文件/文件夹-取出所有换行符和空格并将其视为字符串搜索。问题在于它不会拾取交换的变量。

但是否则,Ctrl + F是您的朋友...