【发布时间】:2016-03-21 21:13:15
【问题描述】:
我有一组查询,它们使用查询的相同 Select 部分,在 Select 部分下方具有不同的连接、Where 子句等。 Select 部分很长,因为我必须运行此查询的版本接近 30 次,所以每当我必须进行更改时,我必须进行 30 次更改。有没有办法将这些查询的 Select 部分捕获为变量并每次调用该变量?这个过程非常繁琐,所以如果我能够对 Select 部分执行此操作,并且大部分 Where 子句可以压缩为大约 5 个不同的分组,那就太好了,但我不知道该怎么做。这是我正在寻找的一个简单示例:
DECLARE @TestSelect varchar(max) = (SELECT Field1, Field2, Field3, ..., Field 22);
@TestSelect
FROM Table1
LEFT OUTER JOIN Table2
ON Table1.id = Table2.id
这可以使用 tsql 吗?如果不使用 tsql,那么最好的工具是什么,因为在运行这些步骤时,我会将结果插入到另一个表中。
【问题讨论】:
-
您必须使用动态 sql,这甚至不是有效的 varchar(max) 赋值。
标签: sql-server tsql variables select