我需要帮助编写一个case语句,这将允许我将数据放在两个不同的场景中。
我有大约1000万行的数据,需要根据时间过滤数据。
如果数据是这样的:
有一个名为CALL
的列。它包括通话时间(意味着通话的时间)。
现在的情况是,如果电话是在上午8点到中午12点(中午)之间进行的,那么它应该属于一个类别,如果在下午12点到下午4点之间进行通话,它应该属于另一个类别。
所以它应该是这样的:
case
when
call between (8am-12pm) then 'abc'
when
call between (12pm- 4pm) then 'def'
when
call after 4pm then it should comes under next day means next day morning 'abc'
我知道这可能很简单,但我无法弄明白。
如何做到这一点?
答案 0 :(得分:5)
这个怎么样:
case
when datepart(hour,[call]) < 8 then 'abc'
when datepart(hour,[call]) between 8 and 11 then 'abc'
when datepart(hour,[call]) between 12 and 15 then 'def'
when datepart(hour,[call]) >= 16 then 'abc'
end
显然前两个条款可以合并,但我不确定你想在午夜和早上8点之间打电话。
修改强> 你没有具体说明下午4点到晚上8点之间会发生什么,但是你应该能够搞清楚了!
修改更正between
条款(感谢@Andriy)。 @Shahsra - 现在意味着正好中午的call
值将变为'def'但是11:59将变为'abc'。当然,如果这不是你想要的,你可以很容易地调整它。关键是datepart(hour,[call])
是你需要的基础。