Oracle学习——单行函数——条件表达式、Case、Decode、嵌套函数

条件表达式

CASE表达式

语法格式:

CASE expr//用expr和comparison_expr进行比较相等时进行return_expr1处理

	WHEN comparison_expr1 THEN return_expr1  
	[WHEN comparison_expr2 THEN return_expr2 //等于这个的时候怎么处理
	......
	WHEN comparison_exprn THEN return_exprn
	ELSE else_expr]    都不匹配时怎么处理
	END

举例:
显示全部雇员的职位,但是职位要求替换为中文显示

	CLERK 办事员   SALESMAN 销售   MANAGER 经理
	ANALYST  分析员   PRESIDENT  总裁
	
	Select empno,ename,
	Case job
	When ‘CLERK’ then ‘办事员’
	When ‘SALESMAN’ then ‘销售’
	......
	When ‘ANALYST’ then ‘分析员’
	Else ‘总裁’
	End
	From emp;

Decode函数

语法格式

//当列或表达式的值等于条件1的时候返回结果1

			DECODE(col | expression,searsh1,result1,
			[,searsh2,result2...,]    //同上
			[,default])   // default 相等于上面的 else
			
			//DECODE函数和CASE表达式都可以用于IF-THEN-ELSE逻辑判断

举例:
显示全部雇员的职位,但是职位要求替换为中文显示

	CLERK 办事员   SALESMAN 销售   MANAGER 经理
	ANALYST  分析员   PRESIDENT  总裁
		
		Select empno,ename,job
	      Dcode(job, ‘CLERK’, ‘办事员’, 
		  ‘SALESMAN’, ‘销售’,
	  	  ......
		  ‘ANALYST’, ‘分析员’,
		  ‘总裁’) from emp;

注意:对于等值判断的时候,decode语法更为简洁,代码量也较少,推荐使用。而对于区间的判断,使用范围条件区分时,用case表达式。

举例:

				 Select empo,ename,sal,
					Case when sal < 2000 then ‘低’
					When sal < 5000 then ‘中’
					Else ‘高’
					End
					From emp;

嵌套函数

单行函数是可以嵌套的,嵌套函数的执行顺序由内到外。

需求分析1:距聘用日期三个月后的下一个星期一的日期,格式为2017-01-06

	三个月后  add_months(hiredate,3)
	下个星期一  next_day(add_months(hiredate,3),’星期一’)
	且日期格式为2017-01-06  得到如下:
	To_char(next_day(add_months(hiredate,3),’星期一’),’yyyy-mm-dd’)

需求分析2:显示雇员日薪并四舍五入到2位小数的结果,然后对薪资格式以’¥1,182.19’这样的例子形式进行格式化。

	雇员日薪并四舍五入到两位小数
	Round(sal/30,2)
	对薪资格式以’¥1,182.19’这样的例子形式进行格式化。
	To_char(round(sal/30,2),’L9,999.99’)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值