我有一组数据,基本上是这样的:
工作行 | 时间 | 日期 | 职位ID | 原始作业行 |
---|---|---|---|---|
101 | 4 | 2001-06-13 | 21777A | 空 |
269 | 12 | 2004-11-30 | 24999A | 101 |
270 | 10 | 2006-06-02 | 26888A | 空 |
我想找到一种方法从表中选择所有信息,将 OriginalJobRow 不为空的 JobID 值替换为 JobRow 列中等于 OriginalJobRow 值的 JobID,仅用于 SELECT 查询。
在此示例中,我希望我的 SELECT 返回 21777A 作为 JobRow 269 的 JobID,因为 OriginalJobRow 在该行上不为 null。
如何在 SELECT 查询中完成此操作?
自连接可用于查找与 OriginalJobRow 相关的 JobID
SELECT e1.JobRow, e1.Hours, e1.Date, ISNULL(e2.JobID,e1.JobID) as JobID
FROM Example e1
LEFT JOIN Example e2 on e2.JobRow=e1.OriginalJobRow
工作行 | 时间 | 日期 | 职位ID |
---|---|---|---|
101 | 4 | 2001-06-13 | 21777A |
269 | 12 | 2004-11-30 | 21777A |
270 | 10 | 2006-06-02 | 26888A |