1,获取系统当天的0点到24点
select trunc(sysdate), to_date(to_char(sysdate,'yyyy-mm-dd')||'00:00:00', 'YYYY-MM-DD HH24:MI:SS'),to_date(to_char(sysdate,'yyyy-mm-dd')||'23:59:59', 'YYYY-MM-DD HH24:MI:SS') from dual
2,数据库的备份与还原
备份
1,exp 用户名/密码@127.0.0.1/orcl owner=用户名 file= E:\7-qyk\20180629.dmp log= E:\7-qyk\20180629.log
2,exp rldm/rldm@sjthmis file=d:/rldm.dmp owner=(rldm) log=rldm.log
还原
imp 用户名/密码@127.0.0.1/orcl fromuser=备份的用户名 touser=往哪儿导的用户名 file=F:\qyk\20180629.dmp log= F:\qyk\20180629.log
3,获取最新记录
4,Sql语句执行顺序:from--where--group by--having--select--order by
其他:
count() over(partition by ... order by ...):求分组后的总数。
max() over(partition by ... order by ...):求分组后的最大值。
min() over(partition by ... order by ...):求分组后的最小值。
avg() over(partition by ... order by ...):求分组后的平均值。
lag() over(partition by ... order by ...):取出前n行数据。
lead() over(partition by ... order by ...):取出后n行数据。
ratio_to_report() over(partition by ... order by ...):Ratio_to_report() 括号中就是分子,over() 括号中就是分母。
5,返回参数(列名)中第一个非NULL的字段值,注意不是为空''
看例子:
--创建表
IF OBJECT_ID('#') IS NOT NULL DROP TABLE #
CREATE TABLE #(
COL1 VARCHAR(10),
COL2 VARCHAR(10),
COL3 VARCHAR(10)
)
GO
--插入数据
INSERT INTO # SELECT NULL,'COL2',''
--查询
SELECT coalesce(COL1,COL2,COL3) FROM #
--结果是
/*
COL2
*/
但是如果该字段中所有的值都是NULL,coalesce将返回NULL!
6,自定义排序
select XZDXDW_ID, decode(XZDXDW_NAME ,null,'',XZDXDW_ID) XZDXDW_NAME from LZ_DIC_XZDXDW order by decode(xzdxdw_id,'TMB',1,'SGC',2,'SKF',3,'LYC',4,'FAG',5,'1厂',6)