永发信息网

ORACLE SQL 查询及函数的操作问题

答案:2  悬赏:10  手机版
解决时间 2021-02-28 08:08
  • 提问者网友:兔牙战士
  • 2021-02-27 15:13
我用sql将数据组合成这样了。
图1:
AA 1 0.1 4月 2015 00001 550
AA 1 0.1 4月 2015 0000103 100
AA 1 0.1 4月 2015 0000106 120
AA 1 0.1 4月 2015 0000107 160

但是我实际想要
图2:
类型 描述 4月
AA 00001-0000103-0000106-0000107 170
AA 0000103 100

(PS: 170=550-100-120-160)
怎么样才能做到呢?大神帮忙啊。用什么sql写。
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-02-27 16:05
诶亚

看来我的贴几章书才行

1.请总结为日期字段赋值的几种方式,并举例说明
oracle中有个到当前系统时间--sysdate,如:
select sysdate from dual

可对日期进行自述运算:
select (sysdate-mybirthday)/7 from person

months_between('01-sep-95','11-jan-94')---取得二个日期之间的间隔月数(19.6774194)
add_months('11-jan-94',6)---给指定日期加上指定的月份后得到一个新的日期(11-jul-94)
next_day('01-sep-85','friday')---取得当前日期中下个周五的日期(01-jul-95)
last_day('01-feb-95')---取得当前日期中月份的最后一天(28-feb-95)

round进行四舍五入,trunc则否,以下是我的操作结果:
sysdate为:
SYSDATE
----------
28-7月 -06

select
round(sysdate,'month') RM,
round(sysdate,'year') RY,
trunc(sysdate,'month') TM,
trunc(sysdate,'year') TY
from dual;

RM RY TM TY
---------- ---------- ---------- ----------
01-8月 -06 01-1月 -07 01-7月 -06 01-1月 -06

2.请总结select语句的几种用法,并举例说明

inner join
left join
right join
cross join (一般不允许用)

3.请总结SQL操作符,每种操作符各举一例说明

||字符串相加
>
<
=
Like
Between and

4.请总结SQL单行函数,每个函数各举一例说明
越全面越好,

>字符处理

upper(str)---将字符串str全部转换成大写
lower(str)---将字符串str全部转换成小写
initcap(str)---将字符串中每个单词的首字母大写
concat(str1,str2)---将字符串str1与str2连接起来(也可以通过'||'号直接相连)
substr(str,a,b)---取字符串str中的指定字符,从位置a开始取长度为b的字符串,假如a为正则从左边开始,否则从右边开始
instr(str,'z')---取得str字符串中从左边开始每一次出现z字符的下标位置(下标从1开始)
lpad(str,12,'*')---左填充,即将字符串str长度填充到12,假如其不足12位则在左边以*号填充
rpad(str,12,'*')---右填充,同上
length(str)---计算字符串str的长度

2>数字函数

round(45.926,2)---将前一数保留指定的小数位,并四舍五入(45.93),假如指定位是负数则意为在小数点左边保留指定位,如round(45.923,-1)=50,rount(45.923,0)=46,round(45.93,-2)=0,round(55.93,-2)=100
trunc(45.926,2)---同上,得不四舍五入(45.92)
mod(1600,300)---求余(100)
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-02-27 16:48
正在操作的可以通过v$sql查看,以前操作的oracle本身是没有记录的,除非你自己设定触发器记录。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯