随笔分类 -  Oracle

摘要:0.date 和 timestamp 说明 date 类型能够存储年、月、日、世纪、时、分、秒,经常使用的格式为: 或者 。date 只能精确到秒,不能精确到秒之内的时间,一般的时间计算足够,但是在时间精度要求较高的场景下,date 类型就有点力不从心。 为了解决 date 类型粒度不够的问题,Or 阅读全文
posted @ 2019-12-24 15:11 Hider1214 阅读(8128) 评论(0) 推荐(0) 编辑
摘要:平时update的时候直接更改字段内的值,例如: 但更新后的值中包括单引号,则不能按以上方式进行更新,会报错。 遂测试之。 效果如预期。 原理 :只需将需插入或更新的内容中的单引号替换为两个单引号即可。 阅读全文
posted @ 2019-12-19 22:36 Hider1214 阅读(4294) 评论(0) 推荐(0) 编辑
摘要:1.replace 函数 语法: replace(char, search_string, replacement_string) 针对字符串替换 功能: ​ 将char中的字符串替换。 ​ 当replacement_string为空时,剔除search_string。 完全匹配的字符才会进行替换, 阅读全文
posted @ 2019-12-11 17:48 Hider1214 阅读(7004) 评论(0) 推荐(1) 编辑
摘要:普通的 都是根据条件来对部分列的内容进行修改,用法如下: 假设现在有2张表:A、B,需要关联A、B表,根据相同的 来 A表。 建立测试表 关联更新 本意只是将关联得上的内容进行update,关联不上的内容不修改。但此用法下,关联不上的内容直接被update为null,需再度优化。 方法一 添加whe 阅读全文
posted @ 2019-12-11 16:34 Hider1214 阅读(2243) 评论(0) 推荐(0) 编辑
摘要:在 中有很多函数可以实现排序的功能,但是不尽相同。下面一一解说。 row_number函数 功能:可实现分组排序,为数据行添加序号,多用于分页查询。 语法: 注意: 当存在相同成绩的学生时, 会依次进行排序,序号不相同,例如:1、2、3、4、5…… 的值不会存在重复,当排序的值相同时,按照表中记录的 阅读全文
posted @ 2019-10-29 10:56 Hider1214 阅读(1073) 评论(0) 推荐(0) 编辑
摘要:今天get到一个骚操作,通过ascii码转换之后来进行互换编码的。 有必要对ascii进行学习一番。 转换函数 函数 函数 对特殊字符可进行单独处理,不直接输入,而是通过输入其 ,然后进行转换输入。例如:想输入 ,可以输入 。 附:常用ASCII码对应表 | ASCII 码 | | | | ASCI 阅读全文
posted @ 2019-10-25 15:04 Hider1214 阅读(3476) 评论(0) 推荐(0) 编辑
摘要:[TOC] 本文通过几道大厂数据分析题目来实操窗口函数,巩固昨日窗口函数的学习情况。 题目一 某顶尖外卖平台数据分析师面试题。现有交易数据表 如下: user_name 用户名 goods_kind 用户订购的的外卖品类 现在老板想知道每个用户购买的外卖品类偏好分布,并取出每个用户购买最多的外卖品类 阅读全文
posted @ 2019-10-16 10:27 Hider1214 阅读(615) 评论(0) 推荐(0) 编辑
摘要:[TOC] SQL中的聚合函数,顾名思义是聚集合并的意思,是对某个范围内的数值进行聚合,聚合后的结果是一个值或是各个类别对应的值。直接聚合得到的结果是所有数据合并,分组聚合(group by)得到的结果是分组合并。 这种聚合函数得到的数据行数是小于基础数据行数的,但是我们经常会有这样的需求,就是既希 阅读全文
posted @ 2019-10-15 16:57 Hider1214 阅读(4754) 评论(0) 推荐(2) 编辑
摘要:一次性update多个字段 以student表为例: 如果需要修改数据,一般语法: 如果字段非常多,这样写就稍微麻烦点,因为待修改字段和待修改的数据没有分离。 还有另外一种写法(字段多的时候写的时候方便,书写效率高些;字段少的时候感觉不出来): update 多表级联更新 多表级联更新语法为: 该语 阅读全文
posted @ 2019-10-11 14:58 Hider1214 阅读(28137) 评论(0) 推荐(0) 编辑
摘要:一个简单的行列转换例子,原始数据。 结果如下: END 2019-05-21 17:00:57 阅读全文
posted @ 2019-05-21 17:01 Hider1214 阅读(282) 评论(0) 推荐(0) 编辑
摘要:在数据库中难免会遇到需要对数据进行脱敏的操作,无论是姓名,还是身份证号。 最近遇到一个需求,需要对姓名进行脱敏: 姓名长度为2,替换为姓+*; 姓名长度为3,替换中间字符为*; 姓名长度为4,替换第3个字符为*; 经过一番搜索之后,最终找到了3种方式的实现,具体如下。 一、先查找,再替换 注意:此种 阅读全文
posted @ 2019-01-02 16:46 Hider1214 阅读(8941) 评论(0) 推荐(2) 编辑
摘要:Oracle中常用 left join 和 right join 来进行外连接,同时,oracle也支持 (+) 的特殊用法,也是表示外连接,并且总是放在非主表的一方。 例如: 左外连接: 等价于: 同理,右外连接: 等价于: 注意: 1.(+)操作符只能出现在WHERE子句中,并且不能与OUTER 阅读全文
posted @ 2018-12-18 22:53 Hider1214 阅读(711) 评论(0) 推荐(0) 编辑
摘要:With as短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到。该语句会在真正的查询之前预先构造一个临时表,之后可以多次使用做进一步的分析和处理。 优势: 1.可以使SQL语句的可读性更高; 2.一次分析,多次使用,提高性能; 阅读全文
posted @ 2018-12-03 10:27 Hider1214 阅读(1912) 评论(0) 推荐(0) 编辑
摘要:近期,在使用Oracle的过程中,由以下两段代码的执行引发的思考,到底 select * from a,b where a.id = b.id 和 select * from a inner join b on a.id = b.id 有没有区别? 经过好一番查资料验证,最后更加迷惑。。。 …… … 阅读全文
posted @ 2018-11-29 16:45 Hider1214 阅读(3595) 评论(0) 推荐(2) 编辑
摘要:由于工作环境中oracle版本为10g,不支持行转列函数pivot,特在自己电脑上安装了oracle 11g,但因为不经常使用,便把服务自动启动给关闭了,只在需要使用时手动启动,因此记录一下需要启动的各个服务具体情况。 windows 7 64位 oracle 11g R2 共有7个服务,具体如下: 阅读全文
posted @ 2018-11-15 00:16 Hider1214 阅读(600) 评论(0) 推荐(0) 编辑
摘要:在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔。 例如,现有表temp_cwh_test: 1.想按u_id分组,进行goods合并 得到: 2.想按u_id分组,进行goods和num合并 得到: 3.以“|”进行分隔合并 得到: 4.其他 Oracle 1 阅读全文
posted @ 2018-11-04 01:21 Hider1214 阅读(2791) 评论(0) 推荐(0) 编辑
摘要:由于Oracle不支持select top N语句,所以在Oracle中需要利用order by和rownum的组合来实现select top N的查询。 rownum是记录表中数据编号的一个隐藏字段。 1.抽取top N数据 2.在top N数据中抽出第M(M <= N )条记录 3.抽取按某种方 阅读全文
posted @ 2018-09-11 11:11 Hider1214 阅读(942) 评论(0) 推荐(0) 编辑
摘要:通过DB_LINK访问远程表的时候出现 ORA-22992: cannot use LOB locators selected from remote tables 错误。 原因:因为表中含有clob字段,在统计库中用到这个表。 如果我们用不到这个clob字段,不访问这个clob字段就可以。 具体方 阅读全文
posted @ 2018-09-11 09:51 Hider1214 阅读(5517) 评论(0) 推荐(0) 编辑
摘要:在使用oracel查询时,可以通过并行提高查询速度。例如: 强行启用并行度来执行当前SQL。加上这个说明之后,可以强行启用Oracle的多线程处理功能,提高效率。但本身启动这个功能,也是要消耗资源与性能的。所有,一般都会在返回记录数大于100万时使用,效果也会比较明显。 语法: /*+paralle 阅读全文
posted @ 2018-08-15 09:17 Hider1214 阅读(2635) 评论(0) 推荐(0) 编辑
摘要:decode函数主要作用:将查询结果翻译成其他值(即以其他形式变现出来) 使用方法: 解释: if (条件==值1) then return(翻译值1)elsif (条件==值2) then return(翻译值2) ....... elsif (条件==值n) then return(翻译值n) 阅读全文
posted @ 2018-06-06 00:04 Hider1214 阅读(267) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示