有没有办法用同一个表中的其他数据替换 SELECT 中的值,并且仅在特定条件下发生?

问题描述 投票:0回答:1

我有一组数据,基本上是这样的:

工作行 时间 日期 职位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 查询中完成此操作?

sql sql-server
1个回答
0
投票

自连接可用于查找与 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
© www.soinside.com 2019 - 2024. All rights reserved.