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)的更多相关文章

  1. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  2. SQL Server 大数据搬迁之文件组备份还原实战

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...

  3. Sql Server系列:分区表操作

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  4. SQL Server中的高可用性(2)----文件与文件组

        在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...

  5. EntityFramework Core Raw SQL

    前言 本节我们来讲讲EF Core中的原始查询,目前在项目中对于简单的查询直接通过EF就可以解决,但是涉及到多表查询时为了一步到位就采用了原始查询的方式进行.下面我们一起来看看. EntityFram ...

  6. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  7. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  8. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  9. 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  10. SQL Server on Linux 理由浅析

    SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...

随机推荐

  1. 导出word文档

    string id = Request["id"];            if (string.IsNullOrEmpty(id))            {           ...

  2. Xcode 常用快捷键及代码自动排版 二

    Xcode常用快捷键,网上找的总结一下,特别是格式化代码 隐藏xcode command+h退出xcode command+q关闭窗口 command+w关闭所有窗口 command+option+w ...

  3. (原)ubuntu14及ubuntu16中安装docker

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5653739.html 参考网址: http://blog.csdn.net/yangzhenping/ ...

  4. Android SDK 更新时修改hosts文件仍然无法更新,可试试这个方法……

    Android SDK 更新时修改hosts文件仍然无法更新,此时必定万分蛋疼.在hosts文件中更换了各种ip,仍然解决不了!!!!!!!!!!!!!!? 第一步: 打开此软件,等待服务器连接 第二 ...

  5. UltraEdit v17.10.0,注册机,注册码

    1,UltraEdit注册机 :点击下载 2,断掉网络,进入UltraEdit软件,依次点击:帮助——注册/激活——激活,会提示你进行脱机激活,点击脱机激活后,将用户码1和用户码2 分别输入注册机的u ...

  6. SSH 5W学习

    what SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一族协议,其目的是 ...

  7. WPF笔记(1.10 绘图)——Hello,WPF!

    原文:WPF笔记(1.10 绘图)--Hello,WPF! 书中的代码语法过时了,改写为以下(测试通过):         <Button>            <Button.L ...

  8. T-SQL 脚本

    1.USE语句 USE语句用于设置当前数据库,如果没有USE语句,那么就由执行脚本的任何用户来确定执行脚本时当前数据库是正确的.如果只是一个通用脚本,那么省去USE语句实际上可能更有益.通常,如果在脚 ...

  9. cf475B Strongly Connected City

    B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  10. ubuntu查看硬件信息

    1,外部探针probe sudo apt-get install hwinfo 执行hwinfo获取系统信息 --short