[SQL]sql select case when 语句

有道笔试题:

服务器监控表server_status中,当服务器状态发生server_status变化时数据表中将被插入一条记录,状态0表示停机 1表示正常,用SQL查询Server A 的停机开始时间和结束时间,表中存在多台Server的状态记录.

SVR_ID  SVR_NAME STATUS_TIME STATUS
1 A 2013-10-31 00:00:00 1
2 B 2013-10-31 00:00:00 1
1 A 2014-11-31 00:00:00 0
2 B 2014-11-31 00:00:00 0
3 C 2014-11-31 00:00:00 0
... ... ... ...

我做的话只会

select s1.svr_name, s1.status_time start_date, s2.status_time end_date
from server_status s1, server_status s2
where s1.svr_id = s2.svr_id
and s1.status = 1
and s2.status = 0

and s1.svr_name='A'

,今天看到别人用了case when语法,于是我也试着写了一下

select svr_name,
case status
when 1 then
status_time
end as start_time,
case status
when 0 then
status_time
end as end_time
from server_status
where svr_name = 'A'
不知道有没有更好的做法...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,782评论 0 33
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 2,936评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 离 落 昨夜 你离开的脚步 惊醒梦中的我 我复寻去 你已远离 没了踪迹 复 寻 你也深离多时 没有...
    潇湘夜雨lq阅读 167评论 0 0
  • 文/拾穗 天气,燥热 打开手机一看 三十九度 连风也是热的 你说:有比这更热的吗 我说有啊,那就是抱你的时候 你说...
    拾穗的时光阅读 197评论 1 3