Case when易错点

原创 2016年05月30日 14:48:20

易错一

  • 第一段代码
SELECT parent_item_id,CASE parent_item_id WHEN parent_item_id=45 THEN 1 ELSE 0 END
FROM ih_record_table_item WHERE ih_rt_id=2;
  • 第二段代码
SELECT parent_item_id,CASE WHEN parent_item_id=45 THEN 1 ELSE 0 END
FROM ih_record_table_item WHERE ih_rt_id=2;
  • 第三段代码
SELECT parent_item_id,CASE parent_item_id WHEN 45 THEN 1 ELSE 0 END
FROM ih_record_table_item WHERE ih_rt_id=2;
  • 第一个结果
NULL0
NULL0
NULL0
NULL0
NULL0
NULL0
NULL0
190
190
190
NULL0
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
NULL0
NULL0
450
450
450
NULL0
450
NULL0
NULL0
NULL0
NULL0
  • 第二个结果
NULL0
NULL0
NULL0
NULL0
NULL0
NULL0
NULL0
190
190
190
NULL0
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
NULL0
NULL0
451
451
451
NULL0
451
NULL0
NULL0
NULL0
NULL0
  • 第三个结果
NULL0
NULL0
NULL0
NULL0
NULL0
NULL0
NULL0
190
190
190
NULL0
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
240
NULL0
NULL0
451
451
451
NULL0
451
NULL0
NULL0
NULL0
NULL0
  • 结论
    根据前面的三条语句和结果可看出第二个和第三个的结果一致的,对于第一个查询其实是有问题的,case里面其实对比的是一个true 和 false,此处如果写查询不够谨慎,就会容易出现这样的bug。
版权声明:本文为博主原创文章,未经博主允许不得转载。

case when 用法

SQL中的case when then else end用法 Case具有两种格式。简单Case函数和Case搜索函数。 ...
  • Eunicema
  • Eunicema
  • 2016年12月13日 14:51
  • 1262

Case when的用法

大家都知道Case when的用法,一旦满足了某一个WHEN ,则这一条数据就会退出CASE WHEN,而不再考虑其他CASE ,文章来详细的介绍了case when的用法并举例说明了。   Ca...
  • houpengfei111
  • houpengfei111
  • 2013年09月05日 15:02
  • 25642

sql中的case when的用法

CASE有两种用法       一种是CASE简单表达式用法          for example:                       CASE sex                 ...
  • a631464421
  • a631464421
  • 2015年03月24日 21:35
  • 1398

SQL语句之CASE WHEN

CASE WHEN 基本概念Case具有两种格式:简单Case函数和Case搜索函数。简单Case函数: CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘0’ THEN ‘女’...
  • STFPHP
  • STFPHP
  • 2016年11月10日 01:49
  • 1677

hql 中的case when运用查询

有以下hql: String hql = "select new com.ks.admin.report.dto.ReportMonthWithDrawalDto(" + "count(*)...
  • c466254931
  • c466254931
  • 2015年05月29日 16:50
  • 3816

SQl CASE WHEN 语句的嵌套使用方式

case具有两种格式。简单case函数和case搜索函数。   1.简单case函数   case sex when ’1’ then ’男’ when ’2’ then ’女’else...
  • andyzhaojianhui
  • andyzhaojianhui
  • 2015年07月16日 10:54
  • 5969

case when then 的两种写法

Oracle 中 CASE WHEN 和 SELECT CASE WHEN 的用法
  • Alias_fa
  • Alias_fa
  • 2017年05月04日 10:45
  • 1591

一次有趣的case when函数使用经历

一次在做图表的时候,需要对查询的数据做些处理,也就是要做行列的转换工作,原有的数据格式是这样的: area recordmethod num 00 1 20 00 0 ...
  • henu2009220176
  • henu2009220176
  • 2015年07月19日 15:07
  • 1723

数据库之Case When

如果我们需要在数据库中进行逻辑判断,不防用一下咱们的CaseWhen,或者Oracle的decode。加上group by 效果更佳。...
  • lovemenghaibin
  • lovemenghaibin
  • 2015年08月11日 21:24
  • 1028

CASE WHEN 两种用法

举例说明SELECT CASE a.AFTER_QUALITY WHEN '0' THEN '过免维期' WHEN '1' THEN '未过免维期' ELSE '错误数...
  • ClamReason
  • ClamReason
  • 2015年04月15日 18:50
  • 3358
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Case when易错点
举报原因:
原因补充:

(最多只允许输入30个字)