sql语句判断方法之一
Case具备两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其余' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其余' END
这两种方式,能够实现相同的功能。简单Case函数的写法相对比较简洁,可是和Case搜索函数相比,功能方面会有些限制,好比写判断式。
还有一个须要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
例子:
有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按如下条件显示出来(并写出您的思路):
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 数学 英语
及格 优秀 不及格
------------------------------------------
select
(case when 语文>=80 then '优秀'
when 语文>=60 then '及格'
else '不及格') as 语文,
(case when 数学>=80 then '优秀'
when 数学>=60 then '及格'
else '不及格') as 数学,
(case when 英语>=80 then '优秀'
when 英语>=60 then '及格'
else '不及格') as 英语,
from table
CASE 多是 SQL 中被误用最多的关键字之一。虽然你可能之前用过这个关键字来建立字段,可是它还具备更多用法。例如,你能够在 WHERE 子句中使用 CASE。orm
首先让咱们看一下 CASE 的语法。在通常的 SELECT 中,其语法以下:排序
SELECT =
在上面的代码中须要用具体的参数代替尖括号中的内容。下面是一个简单的例子:it
USE pubs
这是 CASE 的典型用法,可是使用 CASE 其实能够作更多的事情。比方说下面的 GROUP BY 子句中的 CASE:table
SELECT 'Number of Titles', Count(*)
你甚至还能够组合这些选项,添加一个 ORDER BY 子句,以下所示:
USE pubs