我需要创建一个SQL查询来从DB生成以下输出。如何在这里使用案例
我正在寻找这样的
的条件当week_val是1,那么hour_val应该来自week_val 2排。 否则hour_val来自同一行。
我需要创建一个SQL查询来从DB生成以下输出。如何在这里使用案例
我正在寻找这样的
的条件当week_val是1,那么hour_val应该来自week_val 2排。 否则hour_val来自同一行。
您可能需要使用子查询CASE Statment
SELECT CASE WHEN week_val =1 THEN (SELECT TOP 1 hour_val FROM TABLE NAME WHERE week_val <> 1)
ELSE hour_val
END
FROM TableName
SELECT week_val, (CASE week_val
WHEN 1 THEN (SELECT hour_val FROM your_tbl WHERE week_val = 2)
ELSE hour_val)
FROM your_tbl;
如果您确定有将与week_val = 2,那么你就可以避免一个子查询的行。
select week_val,
case week_val when 1 then lead(hour_val) over (order by week_val) else hour_val end as hour_val
from t
也许这 - JOIN代替子查询:
SELECT
t1.week_val,
CASE t1.week_val WHEN 1 THEN t2.hour_val ELSE t1.hour_val END AS hour_val
FROM
table_name t1 LEFT JOIN table_name t2 ON t2.week_val = t1.week_val + 1
请不要添加评论关于您的问题投票 - 随时给意见,如果你有,最好不是在所有。让人们投票他们会怎么做,特别是如果你在事先没有尝试的情况下提问。 – halfer