case...when...简单用法sql说明
1、项目用到的sql展示
select
n.name,n.position,
case
when
(select count(*) from T_PUNISHMENT c where c.user_id = n.id) > 0
then
'有'
else
'无'
end PUNISHMENT,
case
when
(select count(*) from T_ASK_AND_CONVERSATION c where c.user_id = n.id) > 0
then
'有'
else
'无'
end CONVERSATION,
case
when
(select count(*) from T_REPORT_ON_WORK b where b.user_id = n.id) > 0
then
'有'
else
'无'
end REPORT_WORK,
case
when
(select count(*) from T_INTEGRITY_ASSESS_REPORT b where b.user_id = n.id) > 0
then
'有'
else
'无'
end REPORT_ASSESS
from tor_horizon_user_dept m,to_horizon_user n where m.dept_id = (
select dept_id from tor_horizon_user_position thup,to_horizon_position thp,TOR_HORIZON_USER_DEPT thud where
thup.user_id = 'HZc18c545ab19f94015ab1c564fa00ff' and thp.position_type_id ='HZc18ca15a83d637015a87d8c0550682'
and thup.position_id = thp.id and thup.user_id = thud.user_id) and m.user_id = n.id;
2、项目用到的sql展示
select s.*,
case
when
(select 3+(to_char(trunc(sysdate,'yyyy'),'yyyy')-substr(work_begin_time, 0, 4)-1)*2 as total_vacation_day from t_work_duration u where u.card_no = s.card_no) > 7
then
7
else
(select 3+(to_char(trunc(sysdate,'yyyy'),'yyyy')-substr(work_begin_time, 0, 4)-1)*2 as total_vacation_day from t_work_duration u where u.card_no = s.card_no)
end total_vacation_day
from
(
select p.id,p.name,p.card_no,p.work_begin_time,p.unit_work_time,p.enjoy_summer_winter,p.vacation_begin_time,p.vacation_end_time,q.already_vacation_day,
q.all_vacation_day from t_work_duration p left join
(
select m.id,m.name,m.card_no,m.work_begin_time,m.unit_work_time,m.enjoy_summer_winter,m.vacation_begin_time,
m.vacation_end_time,n.already_vacation_day,t.all_vacation_day from t_work_duration m,
(
select card_no,sum(VACATE_DAY) as already_vacation_day
from T_VACATION,(select trunc(sysdate,'y') as first_day FROM DUAL)m,(select last_day(add_months(trunc(SYSDATE,'y'),11)) as last_day from dual)n
where to_date(vacate_begin_time,'yyyy-MM-dd') >= m.first_day and to_date(vacate_begin_time,'yyyy-MM-dd') <= n.last_day
group by card_no
)n,
(
select card_no,sum(VACATE_DAY) as all_vacation_day from T_VACATION
group by card_no
)t
where m.card_no = n.card_no and m.card_no = t.card_no
)q on p.card_no = q.card_no
)s;
case...when...简单用法sql说明的更多相关文章
- Case when 的用法,简单Case函数
Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...
- SQL进阶1:case表达式的用法示例
一:case表达式的用法 1.SQL中的case表达式的作用是用来对"某个变量"进行某种转化,通常在select字句中使用,举个例子: 不能看出,case表达式很像我们的if el ...
- 【SQL】SQL中Case When的用法
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex ' THEN '男' ' THEN '女' ELSE '其他' END --Case搜索函数 ' T ...
- SQL:select case when 的用法
CASE 可能是 SQL 中被误用最多的关键字之一.虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法.例如,你可以在 WHERE 子句中使用 CASE. 首先让我们看一下 CASE 的语法 ...
- [SQL]CASE WHEN的用法及总结
CASE WHEN的用法及总结 一.已知数据按照另外一种方式进行分组,分析 二.用一个SQL语句完成不同条件的分组 三.在Check中使用Case函数 四.根据条件有选择的UPDATE 五.两个表数据 ...
- SQL*Plus break与compute的简单用法
SQL*Plus break与compute的简单用法在SQL*Plus提示符下输出求和报表,我们可以借助break与compute两个命令来实现.这个两个命令简单易用,可满足日常需求,其实质也相当于 ...
- SQL执行顺序和coalesce以及case when的用法
1.mysql的执行顺序 from on join where group by having select distinct union //UNION 操作符用于合并两个或多个 SELECT ...
- SQL Server case表达式的用法
★CASE表达式是一个标量表达式,它基于条件逻辑来返回一个值.因为CASE是一个标量表达式,所以它可以应用在SELECT.WHERE.HAVING以及ORDER BY子句中. CASE表达式有两种格式 ...
- MS SQL CASE WHEN 的用法
前言 由于经常使用 case when 的2种情况方式,如果=1 则*** 否则 *** 结束.久而久之,都以为只能这么用,都忘记了Case WHEN 的用法. 示例 , ...
随机推荐
- 【bzoj4870】[Shoi2017]组合数问题 dp+快速幂/矩阵乘法
题目描述 输入 第一行有四个整数 n, p, k, r,所有整数含义见问题描述. 1 ≤ n ≤ 10^9, 0 ≤ r < k ≤ 50, 2 ≤ p ≤ 2^30 − 1 输出 一行一个整数 ...
- P2215 [HAOI2007]上升序列
题目描述 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1<x2<…<xm) 且(ax1<ax2<…<a ...
- placeholer改变默认灰色
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{ color:#7b642c; } input:-moz-pl ...
- 【Android开发日记】之入门篇(十一)——Android的Intent机制
继续我们的Android之路吧.今天我要介绍的是Android的Intent. 对于基于组件的应用开发而言,不仅需要构造和寻找符合需求的组件,更重要的是要将组件有机的连接起来,互联互通交换信息,才能够 ...
- tips 前端 背景与元素的透明和模糊
碰到好几次这样的情况了: 一个带点儿文艺效果 背景图片模糊 而一行别致的文字清晰的悬浮在背景上(口胡,加点美好的想象,生活会更美好) 第一反应是 this is easy. cause i know ...
- [bzoj1433][ZJOI2009]假期的宿舍——二分图
题目大意 传送门 题解 显然是二分图匹配. 用一些方法建图就好了. 要注意的是: 本题有多组数据!!! 初始化一定要注意!!! 代码 #include <bits/stdc++.h> us ...
- 正则表达式之Regex.Replace()用法
正则表达式替换匹配到的字符串 string txt = "AAA12345678AAAA"; //匹配到的连续数字的前4位用*替换 string m =Regex.Replace( ...
- Visual Studio跨平台开发(4):Xamarin Android控制项介绍
前言 不同于iOS, Xamarin 在Visual Studio中针对Android, 可以直接设计使用者界面. 在本篇教学文章中, 笔者会针对Android的专案目录结构以及基本控制项进行介绍, ...
- (16)C#继承
继承格式 class 子类:父类 { ....... } 1.子类能够继承父类所有的字段和方法. class Program { class Father { ; public void b() { ...
- 洛谷 P3955 图书管理员【模拟/思维】
题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一本书的图 书编码恰好以读者的需求码结尾,那 ...