sql 练习(2)
1.用Decode函数实现横表和竖表的转换
SELECT deptno DEPARTMENT_ID,
COUNT(*) "部门人数",
SUM(DECODE(SIGN(sal-9000),-1,0,1)) "超高收入人数(>9000)",
SUM(DECODE(SIGN(sal-9000),-1,0,( DECODE(SIGN(sal-12000),1,0,1) ) )) "极高收入人数([9000,12000])",
SUM(DECODE(SIGN(sal-6000),-1,0,( DECODE(SIGN(sal-9000),1,0,1) ) )) "高收入([6000,9000])",
SUM(DECODE(SIGN(sal-3000),-1,0,( DECODE(SIGN(sal-6000),1,0,1) ) )) "一般收入([3000,6000])",
SUM(DECODE(SIGN(sal-3000),-1,1,0)) "低收入([<3000])"
FROM emp
GROUP BY deptno;
2.sqlplus 环境变量设置:
spool a.sql 将回显内容保持到文本;
spool off 关闭回显保存设置;
col empno format a9 设置列宽度;
col empno heading '部门号' 更改列标题;
col empno justify right 设置列标题右对齐;
col sal format $99,999 设置数据显示格式
set echo on 设置执行行脚本时是否显示脚本内容;
set newpage n 设置每页间隔n行;
set wrap 关闭自动换行
set timing on 显示脚本执行时间;
l n 显示缓冲区第n行内容;
a order by sal desc 在上面命令显示第n行后再最加命令;
c/ename/job/ 在上面显示第n行后用job代替第n行的ename;
save a.sql 将缓冲区命令保存到文本
get a.sql 加载命令到当前缓冲区;
title '员工表' 为整张表添加信息;
set verify off 关闭输出绑定变量的新旧值
只用输入一次绑定变量:
select empno,ename,job,&&column_name
from emp
order by &column_name;
为绑定变量设置自定义的提示信息:
accept deptno prompt '请输入部门号:'
accept var prompt '请输入密码' hide
预定义绑定变量的值:
undefine name
sql 函数
1.MONTHS_BETWEEN(date1, date2):判断两个日期之间相差的月份
select months_between(to_date('2013.11.29','yyyy.mm.dd'),sysdate) from dual;
2.7268007019115890083632019115890083632
2.LAST_DAY(date):函数返回包含日期的月份的最后一天
select last_day(sysdate) from dual;
30-9月 -13
3.ROUND(date[,'fmt']):将日期d按照fmt指定的格式舍入,fmt为字符串
select round(sysdate,'mm') from dual;
01-9月 -13
4.TRUNC(date[, 'fmt']):返回由fmt指定的单位的日期
select trunc(sysdate,'mm') from dual;
01-9月 -13(由于截断到9月,前面的dd是自动补齐格式的)
5.NEXT_DAY(date, 'char'):找到下一个星期几
select next_day(sysdate,'星期一') from dual;
09-9月 -13
6.ADD_MONTHS(date, n):用于从一个日期值增加或减少一些月份
select add_months(sysdate,1) from dual;
06-10月-13
7.extract(date_field from [datetime_value]):找出日期或间隔值的字段值
select extract(month from sysdate) from dual;
9
8.Initcap(char)
Select initcap(‘hello’) from dual;
Hello
9.
Lower(char)
Select lower(‘FUN’) from dual;
fun
10.Ltrim(char,set)
Select ltrim( ‘xyzadams’,’xyz’) from dual;
adams
11.Translate(char, from, to)
Select translate(‘jack’,’j’ ,’bk’) from dual;
back (只会替换对应字符)
12.Replace(char, searchstring,[rep string])
Select replace(‘jack and jue’ ,’j’,’bl’) from dual;
black and blue (整体替换)
13.Instr (string,char, m, n)
Select instr (‘worldwide’,’d’) from dual;
5 (查找字符所在位置)
14.Substr (char, m, n)
Select substr(‘abcdefg’,3,2) from dual;
cd
15.Concat (expr1, expr2)
Select concat (‘Hello’,’ world’) from dual;
Hello world
16.Abs(n)
Select abs(-15) from dual;
15
17.Ceil(n)
Select ceil(44.778) from dual;
45(返回比他大的最小整数:即向上取整)
18.Cos(n)
Select cos(180) from dual;
-0.5984601
19.Floor(n)
Select floor(100.2) from dual;
100(向下取整)
20.Power(m,n)
Select power(4,2) from dual;
16
21.Mod(m,n)
Select mod(10,3) from dual;
1
22.Round(m,n)
Select round(100.256,2) from dual;
100.26 (这才是四舍五入,默认精确到整数)
23.Trunc(m,n)
Select trunc(100.256,2) from dual;
100.25
24.Sqrt(n)
Select sqrt(4) from dual;
2
25.Sign(n)
Select sign(-30) from dual;
-1
NVL(exp1,exp2) : 如果exp1为null,则NVL返回exp2;反之返回exp1
NVL2(exp1,exp2,exp3) :如果exp1不是null,则返回exp2,如果是,则返回exp3
NULLIF(exp1,exp2) :如果exp1,exp2相等则返回null,否则返回exp1
sql 练习(2)的更多相关文章
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- SQL Server 大数据搬迁之文件组备份还原实战
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- SQL Server中的高可用性(2)----文件与文件组
在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...
- EntityFramework Core Raw SQL
前言 本节我们来讲讲EF Core中的原始查询,目前在项目中对于简单的查询直接通过EF就可以解决,但是涉及到多表查询时为了一步到位就采用了原始查询的方式进行.下面我们一起来看看. EntityFram ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- SQL Server on Linux 理由浅析
SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...
随机推荐
- Android Path
外置SDCard(TF卡) 1. SDCard的挂载路径(根据系统不同的ROM挂载的路径不同,以下列举几个是从旧系统到新系统的表现形式) /sdcard/external_sd /mnt/extSdC ...
- 检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况
CSS3 Selectors Test : 这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况.启动测试,浏览器会自动测验,并已列表的方式显示 ...
- 自定义带弹性效果的pageControl
分三部分实现,在drawrect方法里画出灰色背景,根据pageCount创建对应个数的dotView放置在对应位置,并隐藏,创建一个CAShapeView类型的layer,根据scrollView的 ...
- C# 广播TS流精确计时发送
广播传输相关的项目,需求是UDP发送TS到IP/ASI网关,网关经过ASI输出到激励器,再由激励器通过射频天线输出,接收端为终端机顶盒. 因为以前没有怎么接触过广播相关的东西,一开始认为用C#写个UD ...
- [C++程序设计]函数的递归调用
在调用一个函数的过程中又出现直接或间接地调用 该函数本身,称为函数的递归(recursive)调用. 包含递归调用的函数称为递归函数. 在实现递归时,在时间和空间上的开销比较大 求n! #includ ...
- djangoPOST请求403 forbidden
处理过程 网上搜索修改setting.py,在MIDDLEWARE_CLASSES增加django.middleware.csrf.CsrfResponseMiddleware 没能解决问题 有说在 ...
- Starship Troopers(HDU 1011 树形DP)
题意: 给定n个定点和m个士兵,n个定点最终构成一棵树,每个定点有一定x个bugs和y个value,每20个bug需要消耗一个士兵,不足20也消耗一个,然后最终收获y个value,只有父节点被占领后子 ...
- 跪求 EF缓存问题 也不知道是不是缓存 问题
1.数据库里面查的结果 2 vs里面查的结果 为什么 不是16 而是2 下面是代码 /// <summary> /// 权限检查 /// </summary> public ...
- LINUX系统GIT使用教程
Git使用笔记. 1 安装GIT $ sudo aptitude install git $ sudo aptitude install git-doc git-svn git-email git ...
- 子shell的$$
http://blog.csdn.net/firefoxbug/article/details/7426109