Oracle
MrGrant
这个作者很懒,什么都没留下…
展开
-
SQL中的case when 和 decode
case when 和 decode(oracle独有) 两者都可以作为条件判断 同一个需求: select id,decode(kurst,'中间价','中','平均汇率','平') KURST from EX_RATE_CONFIG; select id,CASE WHEN kurst = '中间价' then '中' WHEN kurst = '平均汇率' then '平' END AS...原创 2020-04-28 13:54:05 · 502 阅读 · 0 评论 -
oracle之with as 使用
项目中一个聚合查询,真正进行查询之前预先构造了一个临时表,之后便可多次使用它做进一步的分析和处理 WITH Clause方法的优点 增加了SQL的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,这也是为什么会提供性能的地方,达到了“少读”的目标。 WITH p_sum AS ( SELECT report_type, 'xx' T, self_ag...原创 2020-01-15 13:52:31 · 232 阅读 · 0 评论 -
Oracle中日期格式转化之dd-M月-yyyy转为yyyyMMdd
Oracle中日期格式转化之dd-M月-yyyy转为yyyyMMdd问题:解决办法 问题: 项目中遇到某张表的日期字段来自邮件解析入库,而表的日期字段又建的是nvarchar2类型,遂查询出的日期字段全是dd-M月-yyyy格式,对日期排序等操作非常不友好,需要转换乘yyyyMMdd 解决办法 后半段借鉴网友出的同样问题,月份数字是动态的,需要case when判断转化。 SELECT CAS...原创 2020-01-15 11:21:23 · 4477 阅读 · 0 评论 -
SQL执行效率注意
** SQL提高查询效率 ** 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查...原创 2020-01-07 16:02:53 · 284 阅读 · 0 评论 -
HIVE、Oracle种row_number开窗函数去重、分组排序
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/wiborgite/article/details/80521593 ROW_NUMBER() OVER函数的基本用法 语法:ROW_NUMBER() OVER(PARTITION BY COLUMNORDER BY COLUMN) 详解:...原创 2019-12-11 12:02:41 · 2413 阅读 · 0 评论 -
oracle中根据不同条件修改一个字段值
需求:项目中有个需求,报表中用户的数据中 有系统内或系统外,但真实数据有国外分公司填入的是英文,External和Internal,真正汇总分组时会将这个字段分成好几组,有问题,所以在汇总逻辑之前update掉: 解决:当然还是用case when ,但一定跟select语句中的case when区别开来。 UPDATE DWD_XXX_XXX_XXXX SET SYSTEM_INOUTSIDE ...原创 2019-11-29 16:28:02 · 2339 阅读 · 0 评论 -
数据库表里有数据如何修改字段类型
由于oracle等数据库在表里有数据时无法改变字段类型,于是使用下列方法,总体思路是:备份原表数据,删除表数据,修改字段类型,将备份表的数据导入原表,删除备份表,结束。 1、备份表数据 create table ST_DATA_IMPORT_BAK AS SELECT * FROM ST_DATA_IMPORT; 2、删除表数据 delete from ST_DATA_IMPORT; 3、...原创 2019-10-25 10:51:39 · 8366 阅读 · 2 评论