1.between and
a.既可以是数字也可以是日期
b.注意一定是从小到大
否则无数据
2.like
a.注意转义字符的书写
如:
select * from tpl_goods where t.goodsname like ‘%_头孢%’ escape ‘’ | |
---|---|
3.order by
a.注意null,永远是最大
nulls last
如:
select goodsid,goodsnanme,goodstype from tpl_pub_goods order by 3 desc nulls last | |
---|---|
b.order by 3 可以根据数字排序
select goodsid,goodsnanme,goodstype from tpl_pub_goods order by 3 desc | |
---|---|
select goodsid,goodsnanme,qtyfrom tpl_pub_goods order by qty+1000 desc | |
---|---|
4.单行函数定义
一次操作一行数据,则称为单行函数
如:
大写小写
upper() lower().initcap()
截取字符串,拼接字符串.包含字符串
substr() .concat().instr().
字符数.字节数
length()lengthb()
左填充,右填充
lpad ,rpad
select lpad(helle",10,’*’) from dual; | |
---|---|
去空格,去字符
trim
select trim(‘X’ from ‘XXXXX hello world’) from dual;
select trim(‘X’ from null) from dual;–注意空数据
数值函数:
round(数字,位数) 四舍五入
trunc(数字,位数)只保留一
mod(13,3)求余
日期:
select sysdate from dual;
格式化问题:
日期转换为字符串:
select to_char(sysdate,‘yyyy-mm-dd’) from dual;
日期±数字(数字默认是天)
日期-日期() :减是有意义的
计算员工的工龄
months_between ()
add_months()\
last_day():本月的最后一天
next_day():下个星期几是哪天
日期的函数
round()
trunc()
通用函数
1.nvl(0
2.nullif(a,b)
a=b ;return null
a!=b,return a;
3.coalesce(,)从左往右找第一个不为null的值返回
4.条件判断函数
decode(字段,条件1,返回1,条件2,返回2…最后表达式)
case goodsname when then …
when … then
when… then
else …end as …;
转换函数
隐式转换
日期
显示转换:
多行函数:
比如3条数据输出一行,
5.查看当前系统的编码格式
select * from nls_database_parameters;