有没有办法将 WHERE 子句语句存储为可调用变量?
我需要使用不同的“日期”和“ID”值运行大约 20 次以下查询,但“代码”值将保持不变。但是,在 20 次查询之后,我需要将“代码”值更改为另一组值并使用相同的 20 个“日期”和“ID”组合。
我正在使用 SQL Server Management Studio 2012。
编辑:这实际上是一个子查询,我可以计算由此产生的记录数。每个计数查询都与其他计数查询联合,因此我可以一次执行所有查询并让结果显示 1 列的计数。我想知道如何制作一个包含每列特定于“代码”集的结果的 excel 表,但我还没有研究过。
SELECT DISTINCT a,b,c
FROM mytable
WHERE (Code BETWEEN '201' AND '205') OR (Code BETWEEN '211' AND '215') OR (Code BETWEEN '241' AND '245') OR (Code = '450')
OR (Code BETWEEN '381' AND '387') OR (Code BETWEEN '391' AND '397') OR (Code BETWEEN '401' AND '420') OR (Code BETWEEN '441' AND '444')
OR (Code BETWEEN '358' AND '360') OR (Code BETWEEN '371' AND '937') OR (Code = '499') OR (Code BETWEEN '218' AND '239'))
AND (Date > '20101231' AND Date < '20120101')
AND (ID IN ('3','6','7'))
我的代码值如何变化:
WHERE (Code IN ('791','792'))
OR (Code BETWEEN '801' AND '899')
OR (Code BETWEEN '101' AND '125')
OR (Code BETWEEN '401' AND '429')
WHERE (Code BETWEEN '281' AND '749') OR Code = '2037'
还有另外2个Code列表,共5个,涉及BETWEEN、IN、=语句。如果有帮助,我也可以发布这些,但它们遵循与上述相同的声明方式。
日期值适用于日历年或季度。ID 值通过 IN、NOT IN 或 = 表示。它们都是 char、varchar、tinyint 或 date。
替代方案:我可以一遍又一遍地复制和粘贴代码,但想提高我的编码能力。此外,查找和替换仅读取单行。我无法让它适用于多行,例如 WHERE 子句。我听说过正则表达式,但不知道如何使用它们来做我想做的事。
谢谢您的帮助!