1
我正在运行SQL Server 2016 Management Studio。目前,我有以下子查询的结构SQL动态子查询
WITH x_1 AS
(SELECT
-- Code A here --
column_1
-- Code B here --
),
x_2 AS
(SELECT
-- Code A here --
column_2
-- Code B here --
)
SELECT
-- Rest of the code --
所以基本上除了在参照不同的列,我执行相同的代码段为两个子查询(“代码A”和“代码B”)之间。为了避免不必要的重复,我可以用其他编程语言做一些事情大致如下伪代码的行片断
varnames = ["x_1", "x_2"]
colnames = ["col_1", "col_2"]
for (i in 1:2){
eval(varnames[i]) = function(name = colnames[i]){Code A, eval(name), Code B}
}
也就是说,遍历所有的代码块两次,并动态评估的变量和列名。不幸的是,我不知道如何在SQL中执行此操作。任何想法如何实现?这种方法在SQL中有意义吗?还是有更合适的方法来实现相同的结果?
听起来像你可以在存储过程中做的事情。 –