最近开发项目遇到一个sql语句查询难点,数据有多个属性,需要根据不同条件查询出对应属性,结果集里只能有一个属性。
通过研究,发现sql语句里的case when可以实现我的需求。
简单的case when函数
CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' END
CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END
CASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END
详情如下
需求在前端大屏中展示当日菜单,本来是在数据库中把当日菜单查询出来不是复杂的事,实际开发中发现,有难点,甲方菜单数据存储结构如图
一行数据中包含一周七天的,需要根据当日是星期几获取对应的列的数据展示出来。
SELECT case when DATENAME(weekday,GETDATE())='星期一' then DayMenu.daymonID
when DATENAME(weekday,GETDATE())='星期二' then DayMenu.dayTuesID
when DATENAME(weekday,GETDATE())='星期三' then DayMenu.dayWedID
when DATENAME(weekday,GETDATE())='星期四' then DayMenu.dayThursID