使用一个查询的输出,作为另一个查询的输入

时间:2013-12-29 14:52:21

标签: sql

这里有一个益智游戏。

假设我有一个名为 MASTER_TABLE 的表格,其中有两列, TABLE_NAME FIELD_NAME 。此表存储另一个表的名称以及该表的一些随机列。例如: MASTER_TABLE 包含以下数据:

TABLE_NAME    FIELD_NAME

Employee      Emp_name

Employee      Emp_ID

Department    Dept_name

Department    Dept_loc

Headquarters  HQ_name

我想创建一个循环查看此主表中记录的查询,该表将继续在 TABLE_NAME 上创建另一个计数查询,并查看 FIELD_NAME 检查该列是否为NULL

例如,还有另一个名为 EMPLOYEE 的表,其中包含多个列,包括 Emp_name Emp_ID 等。我希望做到以下几点:

Select count(*) from Employee where Emp_name is null;

然后另一个查询来计算{strong> Emp_IDs 的数量NULL

事实是,我不想为 MASTER_TABLE 中的每条记录编写特定查询。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

以下是MSSQL中动态查询的示例代码

declare @tablename as nvarchar(50), @fieldname as nvarchar(50), @qry as nvarchar(500);
set @tablename = 'Employee';
set @fieldname = 'Emp_ID';
set @qry = 'select count(*) as ''Number of Rows'' from ' + @tablename + ' where ' + @fieldname + ' is null';

exec sp_executesql @qry

所有您需要的是while循环为 MASTER_TABLE cursor @tablename 中的每条记录提取set到TABLE_NAME, @fieldname FIELD_NAME