这里有一个益智游戏。
假设我有一个名为 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 中的每条记录编写特定查询。有什么想法吗?
答案 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