您当前的位置: 首页 > 数据库教程 > MySQL教程 > mysql中case when语句的使用方法

mysql中case when语句的使用方法

作者:不详 来源:网络 发布时间: 2011-09-30 11:31 点击:
mysql中case when语句的使用方法: mysql中也有像php语言中switch case 这样的语句。 例如,下面的语句显示中文年月 select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()

mysql中case when语句的使用方法

  mysql中case when语句的使用方法:
  mysql中也有像php语言中switch case 这样的语句。
  例如,下面的语句显示中文年月
  select getdate() as 日期,case month(getdate())
  when 11 then '十一'
  when 12 then '十二'
  else substring('一二三四五六七八九十', month(getdate()),1)
  end+'月' as 月份
  CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。
  首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:
  SELECT <myColumnSpec> =
  CASE
  WHEN <A> THEN <somethingA>
  WHEN <B> THEN <somethingB>
  ELSE <somethingE>
  END
  在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
  USE pubs
  GO
  SELECT
  Title,
  'Price Range' =
  CASE
  WHEN price IS NULL THEN 'Unpriced'
  WHEN price < 10 THEN 'Bargain'
  WHEN price BETWEEN 10 and 20 THEN 'Average'
  ELSE 'Gift to impress relatives'
  END
  FROM titles
  ORDER BY price
  GO
  这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE:
  SELECT 'Number of Titles', Count(*)
  FROM titles
  GROUP BY
  CASE
  WHEN price IS NULL THEN 'Unpriced'
  WHEN price < 10 THEN 'Bargain'
  WHEN price BETWEEN 10 and 20 THEN 'Average'
  ELSE 'Gift to impress relatives'
  END
  GO
  你甚至还可以组合这些选项,添加一个 ORDER BY 子句,如下所示:
  USE pubs
  GO
  SELECT
  CASE
  WHEN price IS NULL THEN 'Unpriced'
  WHEN price < 10 THEN 'Bargain'
  WHEN price BETWEEN 10 and 20 THEN 'Average'
  ELSE 'Gift to impress relatives'
  END AS Range,
  Title
  FROM titles
  GROUP BY
  CASE
  WHEN price IS NULL THEN 'Unpriced'
  WHEN price < 10 THEN 'Bargain'
  WHEN price BETWEEN 10 and 20 THEN 'Average'
  ELSE 'Gift to impress relatives'
  END,
  Title
  ORDER BY
  CASE
  WHEN price IS NULL THEN 'Unpriced'
  WHEN price < 10 THEN 'Bargain'
  WHEN price BETWEEN 10 and 20 THEN 'Average'
  ELSE 'Gift to impress relatives'
  END,
  Title
  GO
  注意,为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。
  除了选择自定义字段之外,在很多情况下 CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。

分享到:
本文"mysql中case when语句的使用方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4