【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点

字符串拼接PY类型转换:
■字符串拼接不能只是简单相加‘+’,只能利用于整数运算,但是纯数字的字符串会直接被转换成数字类型,非纯数字的字符串会出错,包括比较运算符<>=全部会直接进行数字转换再运算。
■’||‘可以实现字符串或者数字拼接,不论数量。
值得注意类型转换,纯数字会被转换成字符串,’+‘永远输出数字结果。’||'永远输出字符串结果。
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第1张图片

常用函数:
■concat(字符串,序号),该函数拼接只能有两个参数,实现多字符串拼接必须利用嵌套。字符串截取以序号开始,即从1开始。
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第2张图片
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第3张图片
■round(参数1,参数2【可选】),1是被四舍五入的数,2是取舍精度,1是十分位2是百分位依此类推,默认是小数点后一位

■trunc(参数1,参数2【可选】),1是被截取的数,2是截取精度,
整数截取:1是十分位2是百分位依此类推,默认是取整。
时间截取:参数类型若是日期,默认截取年月日,忽略掉时间。此时参数2只能为’yyyy’或’mm’或’dd’或’hh’或’mi’(按秒截取没有意义)

■mod(被取余的数,取多少的余)

■last_day(日期),当月最后一天
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第4张图片

数字转字符串:
■to_char()函数或者’||‘拼接
日期转字符串:
■to_char(日期,‘格式控制符’),如’yyyy-mm-dd hh:mi:ss’
字符串转日期:
■to_date(‘2020-04-15’,‘yyyy-mm-dd’)
字符串转数字:
■to_number(‘字符串’)

空值处理函数
■nvl2(空值存在字段,如果为null取代的值,如果不为null取代的值)
■nvl(空值存在字段,取代的值)

条件分支判断函数
■decode(待测条件,条件1,条件1取代值,条件2,条件2取代值,…),条件会和后续比较,若是相等则会返回与之相等的条件对应的取代值,若没有就会返回null,条件或取代值可以是任何类型。
注意又分待测条件是否成对的情况:
当待测条件为单数时并且前面没有匹配到正确的取代值,最后的值会作为缺省值输出结果
当待测条件为双数时并且前面没有匹配到正确的取代值,就会返回null
注意,decode等函数属于oracle特有函数,其他数据库可能非法。
■要在其他数据库实现可以利用SQL1999语法实现多分支选择:
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第5张图片

排序函数:

【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第6张图片

//相同的值排名相同,排名跳跃
select rank() over(order by usenum desc ),usenum from T_ACCOUNT 
//相同的值排名相同,排名连续
select dense_rank() over(order by usenum desc ),usenum from T_ACCOUNT 
//返回连续的排名,无论值是否相等
select row_number() over(order by usenum desc ),usenum from T_ACCOUNT

■使用 row_number()分析函数可以很方便表示排序分页显示,与单纯使用伪列rownum主要区别是,分析函数不局限于:初始生成rownum只能使用<或者<=比较运算符,要想实现第10条记录到第20条的查询,必须利用子查询优先生成rownum起别名才能利用‘>’进行筛选。
只需要实现两层from子查询,预先生成一张表,不必完全完成rownum行号进行3层查询才能利用比较运算符比较。
同样功能,三层子查询:
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第7张图片
两层子查询:
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第8张图片
两者对比在于少了一步将序号转换成别称再拿出来。

集合运算关键字:
■并运算含重复元素:union all
■并运算不含重复元素:union
■交运算:intersect
■差运算minus,避免在rownum上利用大于号,轻松实现分页带排序查询:
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第9张图片

行列转换
实例应用,优先按照地区分组得到不同地区合计水费,接着在水费里细化每个月,这个月有用水费就输出对应金额否则输出0,为每个月起别名。
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第10张图片
在这里插入图片描述
行列置换后:
【ORACLE+PLSQL学习笔记#4】类型转换&字符串拼接PY关系+常用函数+行列转换+杂七杂八的小知识点_第11张图片
注意点,行靠分组,列靠select字段

杂七杂八小知识点:
■sysdate±整数:当前日期±多少天
■mySQL可以不遵循标准语法,省略from表名也能操作。
ORACLE提供伪表dual(实质是单条数据),操作SQL函数输出时from后面可以接任意表,只不过表有几行数据输出结果是就有几行一样的数据。
■PLSQL SQL面板查询结果表格靠右为整数类型,靠左为字符串

你可能感兴趣的:(数据库)