Home  >  Article  >  Database  >  case实例

case实例

WBOY
WBOYOriginal
2016-06-07 17:42:411069browse

SQL中的CASE WHEN语句是经常要用到的,下面将结合实例,为您详解CASE WHEN语句的使用,供您参考,希望对您学习SQL语句能有所帮助。 一张表数据如下 1900-1-1 胜 1900-1-1 胜 1900-1-1 负 1900-1-2 胜 1900-1-2 胜 写出一条SQL语句,使检索结果如下: 胜 负 19

SQL中的CASE WHEN语句是经常要用到的,下面将结合实例,为您详解CASE WHEN语句的使用,供您参考,希望对您学习SQL语句能有所帮助。

一张表数据如下
1900-1-1 胜
1900-1-1 胜
1900-1-1 负
1900-1-2 胜
1900-1-2 胜
写出一条SQL语句,使检索结果如下:
          胜  负
1900-1-1 2   1
1900-1-2 2   0

我随手建了这样一个表:

50) null)

 

并将上面的数据都插入到表中。

经过一番尝试和修改,终于得到了答案:

select distinct Date, Result 1 , Result 1 '负' from test group by date

 

这里我要说的,其实是SQL中case when的用法。它在普通的SQL语句中似乎并不常见,我本人以前也没在实际项目中使用过。遇到类似问题,往往通过代码或多条SQL语句实现。或者是如下这种丑陋的SQL,并且还伴随着很多潜在的BUG(如,当没有‘负’时)。

select a.date,a.a1 胜,b.b1 负 from datedate) a, (datedate) b where a.date=b.date

 

我们不妨来复习一下CASE WHEN的语法。

CASE WHEN有两种用法,一种是类似上面例子中那样的简单CASE函数:

CASE result 1 2 ELSE 0 END

 

还有一种是CASE搜索函数:

1 2 ELSE 0 END

 

其中result='胜'可以替换为其他条件表达式。如果有多个CASE WHEN表达式符合条件,美国服务器,将只返回第一个符合条件的子句,网站空间,香港虚拟主机,其余子句将被忽略。

用CASE WHEN语句可以简化我们平时工作中遇到的很多问题。如性别在表中存的是数字1、2,但是希望查询出来男、女时,可以这样:

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn