select name,case when CODE='ST' then ... else
(case when numbers is null then 1 else numbersnew/numbersold end)
as times
from TABLENAME where Condition
SELECT CASE WHEN (CASE WHEN 2>1 THEN 1 ELSE 0 END)=1
THEN (CASE WHEN (CASE WHEN 2>1 THEN 1 ELSE 0 END)<1 THEN 1 ELSE 0 END)
ELSE (CASE WHEN 2>1 THEN 1 ELSE 0 END)
END
select name,case when CODE='ST' then ... else (case when numbers is null then 1 else numbersnew/numbersold end)end as times from TABLENAME where ConditionSELECT CASE WHEN (CASE WH
平时我们项目中经常用到 where 字段名=值
来筛选查询结果,但实际也会遇到这样的情况,如果表中某个字段code的值是“_1”结尾的,那么就查全部,否则,根据输入的参数查询。
这时
case
when 就派上用途了:
select * from table_name t
where t.status='1' and
(
case
when instr(right(t.code,2
1、简单的
case
when语句:
case
sex when ’1' then '男' when ’2’ then '女’else ’其他’ end
2、复杂的
case
when语句:
case
when month in (01,02,03)
My
SQL
中有一个用于判断多种情况的语句,类似于java中的switch…
case
,在写
SQL
过程中需要用到
case
when
嵌套
,在这里记录一下,以防忘记。
简单例子:
SELECT
WHEN ISNULL(work_order_no) THEN
(
CASE
WHEN 2 > 1 THEN 11 ELSE 22 END)
(
CASE
WHEN 1 > 0 THEN 33 ELSE 66 END)
qk_20030102
WHERE
work_or
(1)语法:
case
when...then...else...end
①简单语法(两个条件):
case
when (criteria1) then (name1) else (name2 )end
②多条件:
case
when (criteria1) then (name1)else (criteria2) then (name2)...[else (criteria i) then (name i)] ...else(name n)end
case
when可以
嵌套
使用,写出更复杂的逻辑实现
select trunc(a.out_date) out_date,
nvl((select x.dept
from neubi_work.dim_dept x...
select
psperdno "期数",
count(
case
when psperdno = 1 then (
case
when date(datadate)-psduedt > 0 then a.custid end) else (
case
when date(datadate)-psduedt > 15 then a.custid end) end) "总人数",
count...
下面给出一个
case
… when 函数的双层
嵌套
使用实例,用于查看逻辑回归预测模型的评估情况:
select mark , pre_mark ,count(*) from
(select emp_no,
label ,
when deptno = '01' then
Simple
CASE
function:
CASE
input_expression
WHEN when_expression THEN result_expression
[ ...n ]
ELSE else_result_expression
Searched...