【发布时间】:2014-10-23 15:03:50
【问题描述】:
我的数据库有两个表:t_computers 和 t_queries。
此查询显示哪些计算机是笔记本电脑
select *
from t_computers
where type = 'Laptop'
在t_queries表中我存储了动态SQL查询。
SELECT QuerySQL
from t_query
where QueryName = 'Clients that have not been started in 30 days'
第一个结果是可以提供此信息的 SQL 查询。
现在,对于复杂的部分,我只想选择类型为“笔记本电脑”的计算机,如果我运行存储在表中的查询,则会返回这些计算机。
像这样的
select *
from t_computers
where type = 'Laptop' and
(computer is returned for (SELECT QuerySQL
from query
where QueryName = 'Clients that have not been started in 30 days'))
这甚至可能吗?我正在使用 SQL Server 2008 R2
我使用了一个非常简化的示例。 关于我为什么要使用表中保存的查询的一些背景信息: 使用我们的客户管理系统(类似于 SCCM),管理员可以轻松地创建客户的“视图”。例如,过滤掉所有 IP 以 10.* 开头的计算机。一旦他们保存视图,就会创建一个 SQL 查询并将其保存在表 t_queries 中。这是我想经常与更改进行比较的查询。
【问题讨论】:
-
您使用的是哪个 RDBMS?
-
执行存储在数据库中的 sql 对我来说根本不是一个好主意
-
使用 MS SQL @Barranka
-
In my opinion this is the only solution that is maintenance free- 高级程序员如是说:“虽然程序只有三行,但总有一天它会被维护。” -- The Tao of Programming -
为什么不创建一个视图,而是将 sql 存储在您使用动态 sql 运行的表中?会让这类事情变得容易得多。
标签: sql sql-server select sql-server-2008-r2 nested