SQL
appleric
在不斷學習的過程中,我這個記性賊差的人,需要有個記錄點滴的地方,就這兒了~
展开
-
查询某个数据库所有表的表名、表字段等
select * from user_tab_comments ;select * from user_col_comments ;select * from user_tables t;原创 2017-11-30 08:30:59 · 360 阅读 · 0 评论 -
plsql 获取周的开始结束日期的存储过程
--功能:获取一个给定的日期所在的星期的开始,结束日期 --p_date --参数日期 --p_week_begin --该周的开始日期 --p_week_edn --该周的结束日期PROCEDURE get_week_scope ( p_date IN DATE, p_week_b转载 2012-03-10 13:47:13 · 1473 阅读 · 0 评论 -
关于日期和星期
--罗列一个星期的日期 select to_char(everyday, 'yyyy-mm-dd') everyday from (select trunc(sysdate,'WW') + 1 + level - 1 as everyDay from dual connect by level (selec原创 2012-03-10 14:02:30 · 372 阅读 · 0 评论 -
PLSQL基本结构
PLSQL基本结构基本数据类型变量1. 基本数据类型Number 数字型Int 整数型Pls_integer 整数型,产生溢出时出现错误Binary_integer 整数型,表示带符号的整数Char 定长字符型,最大255个字符Varchar2 变长字符型,最大2000个字符Long 变长字符型,最长2GBDate 日期型Boolean 布尔型(TR转载 2011-12-19 21:39:54 · 1457 阅读 · 0 评论 -
罗列整一年的日期
<br />select to_char(everyday,'yyyy-mm-dd') from (<br />select to_date('20100101','yyyymmdd') + level - 1 as everyDay from dual<br />connect by level <= <br />(last_day(to_date('20101231','yyyymmdd')) - to_date('20100101','yyyymmdd') +1));原创 2011-01-26 08:48:00 · 644 阅读 · 0 评论 -
PL/SQL之JOB用法 (定时跑数据)
DBMS_Job包的用法 包含以下子过程: Broken()过程。 change()过程。 Interval()过程。 Isubmit()过程。 Next_Date()过程。 Remove()过程。 Run()过程。 Submit()过程。 User_Export()过程。 What()原创 2009-09-17 09:22:00 · 5327 阅读 · 0 评论 -
SQL语句优化技术分析
一、操作符优化1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL原创 2009-09-08 15:26:00 · 287 阅读 · 0 评论 -
sql怎么使用外连接
表3的姓名中应该包括所有出现在表1和表2姓名中的记录,如果某人在表1中没出现,则相当于创收为0;同样如果某人在表2中没出现,则相当于花费为0.再举例Table1姓名 创收A 2000C 300A 200Table2姓名 花费A 400B 20D 200现在想得到一个综合结果,如下姓名 创收 花原创 2009-08-31 09:26:00 · 508 阅读 · 0 评论 -
用next_day得出本周的周一到周日的日期
用next_day得出本周的周一到周日的日期 next_day()的语法格式: next_day := next_day(date,day_of_the_week); 它用来返回从第一个参数指定的日期开始,第一次到达第二个参数(星期)的日期.参数day_of_the_week可以是从1到7的数字,也可以是sunday...saturday之类的英语单词 例如:取本周一是哪原创 2009-08-28 13:19:00 · 700 阅读 · 0 评论 -
使用LAG和LEAD函数统计并使用分组
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。以下是LAG和LEAD的例子:SQL> select year,region,profit ,lag (profit,1) over (order by year) 2 as last_year_exp from test原创 2009-05-22 11:24:00 · 966 阅读 · 0 评论 -
over(partition by..)的排序
over(partition by..) 中 over 是分析函数over(partition by..)是种功能强大的分组函数 作例子的表结构是这样:SQL> select * from test_4;ID DEPT SAL-- ---- ----------a IT 2000b IT 2000c PUR 1000d P原创 2009-05-22 11:30:00 · 939 阅读 · 0 评论 -
截取字段数值特定的部分
之前一直用到substr,但从来都是在固定值的基础上做出截取。即abcde,截取值cde,则应写成:substr(abcde,3,5) 而最近碰到给定一字段,截取此字段下的值的特定部分。例: 字段名:ctn_no 该字段下的值均由abcd起头,长度不限。比如:abcd12548,abcd258963 ... 现要求将abcd去除,只保留数字,即12548,2589原创 2009-05-14 09:37:00 · 1035 阅读 · 0 评论