gpt4 book ai didi

sql - 查找第二列中的任何位置是否存在值并返回结果

转载 作者:行者123 更新时间:2023-12-04 23:28:57 24 4
gpt4 key购买 nike

我需要将一列数据与另一列数据匹配,如果第一列存在于第二列中的任何位置,则结果应为“0.5”(1/2),否则如果不匹配或交叉两列结果应为“0”(零)。

我有包含以下数据的表格:

Job_Id   link_Id   
2 3
3 2
4 5
5 4
6 null
7 8
8 7
10 null

预期结果:

Job_Id  link_Id  cycle
2 3 0.5
3 2 0.5
4 5 0.5
5 4 0.5
6 null 0
7 8 0.5
8 7 0.5
10 null 0

enter image description here

我的查询:

select t.job_id
, t.link_id
, round((case when t.link_job_id IS NULL then 1 else null end))/2 cycles
from T_QCMS_JOB_STATE_HIS t

这不太有效

最佳答案

使用超前和滞后函数来获得所需的输出

    SELECT job_id
,link_id
,nvl(CASE
WHEN lead(job_id) OVER (
ORDER BY job_id
) = link_id
AND lead(link_id) OVER (
ORDER BY job_id
) = job_id
OR lag(job_id) OVER (
ORDER BY job_id
) = link_id
AND lag(link_id) OVER (
ORDER BY job_id
) = job_id
THEN 0.5
END,0) status1
FROM Table1

关于sql - 查找第二列中的任何位置是否存在值并返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33993876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com