我正在查询 3 个不同的数据库(总共 4 个字段)的“用户名”字段,给定我们环境中的特定机器名称:SCCM、McAfee EPO 和 ActiveDirectory。
四列分别是 SCCM_TOP、SCCM_LAST、EPO、AD
我得到的一些元组看起来像:
JOE, JOE, ADMINISTRATOR, JOE
or
JOE, SARAH, JOE, JOE
or
NULL, NULL, JOE, JOE
or
NULL, NULL, JOE, SARAH
最后一个例子是最难编写代码的。
我正在编写 CASE 语句,以帮助以附加方式合并信息,以给出“最佳猜测”的最后一列。目前,我正在根据另一列权衡最有效的用户名,即每个数据库中的“记录年龄”。
CASE
WHEN ePO_Age <= CT_AGE AND NOT ePO_UN IS NULL THEN ePO_UN
WHEN NOT (SCCM_AGE) IS NULL AND NOT (SCCM_LAST_UN) IS NULL THEN SCCM_LAST_UN
WHEN NOT (SCCM_AGE) IS NULL AND NOT (SCCM_TOP_UN) IS NULL THEN SCCM_TOP_UN
WHEN NOT (AD_UN) IS NULL THEN AD_UN
ELSE NULL
END AS BestName,
但是必须有一种更好的方法将这些记录合并为一个。我的下一步是权衡“平均年龄”,然后从那里选择用户名,丢弃“管理员”。
有什么想法或技巧吗?