当前位置:首页 » 编程语言 » oracle疑难sql

oracle疑难sql

发布时间: 2022-04-20 02:46:40

① oracle中sql语句的问题

SELECT DT
, MAX(CASE WHEN AREAID='北京地区' THEN CNT ELSE 0 END) AS "北京地区", MAX(CASE WHEN AREAID='天津地区' THEN CNT ELSE 0 END) AS "天津地区"
FROM (select TO_CHAR(TIME, 'YYYY-MM-DD') AS DT, AREAID, SUM(VALUE) AS CNT)
FROM TAB
GROUP BY TO_CHAR(TIME, 'YYYY-MM-DD'), AREAID) A
GROUP BY DT

② SQL问题(oracle)

你的目的是什么:“我先最后显示的时候只显示1条.”??你想最后只显示一条?

如果你只想显示一条router,那么 把name去掉。
如果按你的想法,只想显示一条value=router结尾的,而且要把name显示出来,但是实际上你的数据库里的value=router结尾的有好多个name,那么数据库到底要显示那个Name?
select distinct substr(fm.extstr1, instr( fm.extstr1, '-', 1) + 1, length(fm.extstr1)) value
from fm_euid_rule fm
order by value

③ 关于Oracle中SQL的问题

你的需求是查看站台状态对吧,这样写:
select x, y, decode(count(z)-sum(z),0,'正常','报警') as 状态 from 表
group by x,y
解释以下:按x,y分组,count(z)即符合条件的总行数,sum(z)即所有分组后z的综合
当所有状态为1(即都正常)时,count(z)和sun(z)是相等的,相减后得0,decode返回'正常'
其它情况(不等,也就是小于)decode返回'报警'

④ oracle 很复杂的sql语句出错,请教!谢谢

你原来的CASE WHEN TO_CHAR( a.tm,' HH24') BETWEEN 2 AND 8 THEN drp END
只取出的是小时,没有日期,统计的也是符合条件(a.TM >=to_date('2013-05-09 8','yyyy-MM-dd HH24'))的所有数据
你应该用 CASE WHEN a.tm BETWEEN trunc(sysdate,'dd') +1+2/24 AND trunc(sysdate,'dd')+1 +8/24 THEN drp END

⑤ Oracle数据库精讲与疑难解析的编辑推荐

为你解决Oracle的疑难问题:安装Oracle时,不能启动安装界面……、安装Oracle时,安装界面显示乱码……、数据库不能启动……、不能归档数据库、数据库被挂起。
本书内容:1认识Oracle的世界——Oracle的体系结构,2迈出第1步——OracIe的安装/卸载含35个实务,3有米之炊数据库的创建与删除含14个实务,4 Oracle网络管理并不难含31个实务,5系统管家婆——SQL*PIus的使用合28个实务,6有始有终一数据库的启动关闭含43个实务,7理清两个模式问题——专有/共享服务器模式含16个实务,8掌握两个管理问题——表空间和数据文件的管理含76个实务,9进程管理含14个实务,10内存管理含25个实务,11用户管理含38个实务,12数据导出含39个实务,13数据导入含26个实务,,,14重中之重——控制文件的管理合个实务,15成为数据库的最高统治者——口令文件(Password File)管理含14个实务,16联机日志文件管理含19个实务,17参数文件(PFILE/SPFILE)管理含9个实务,18全球应用——分布式数据库疑难攻略含12个实务,19并不陌生的问题——裸设备含6个实务,20备份恢复之基石——归档(Archivelog)管理含25个实务,21必行之举一数据库备份含38个实务,22失而复得——数据库恢复含32个实务,23数据库通用语言——SQL语句含26个实务,24模式对象(Schema Object)的管理含110 个实务,25 PL/SQL应用程序开发含70个实务。
毫无保留:
·耗时3年,作者曾为本书辞职在家专心写作
·754个实务,件件源自实际工作的经验与教训,配有实务速查目录
·分享经验,现在作者管理数据库时,就通过复制本书内容来搞定问题
·为初学者去除Oracle的神秘面纱,少走弯路
·为专业人士提供速查手册,遇到故障不求人

⑥ oracle SQL问题

oracle里没DATEPART
函数
,DATEPART是
sqlserver
里的
select
ename,to_char(hiredate,'mm')
from
EMP_2009150371
日期函数只要就是一个转换问题,一般用to_
char函数
来转换
比如返回
年月日
select
ename,to_char(hiredate,'yyyy-mm-dd')
from
EMP_2009150371
返回年月日时分秒
select
ename,to_char(hiredate,'yyyy-mm-dd
hh24:mi:ss')
from
EMP_2009150371

⑦ ORACLE如何查找运行系统里可能有问题的sql

查找bad sql的方法:select * from (select buffer_gets, sql_text from v$sqlarea where buffer_gets >500000 order by buffer_gets desc) where rownum<=10;执行次数多的SQL:select sql_text,executions from (select sql_text,executions from v$sqlarea order by executions desc) where rownum<10; 读硬盘多的SQL:select sql_text,disk_reads from (select sql_text,disk_reads from v$sqlarea order by disk_reads desc) where rownum<10; 排序多的SQL:select sql_text,sorts from (select sql_text,sorts from v$sqlarea order by sorts desc) where rownum<10; 分析的次数太多,执行的次数太少,要用绑变量的方法来写sql:set pagesize 600; set linesize 1000; select substr(sql_text,1,80) "sql", count(*), sum(executions) "totexecs" from v$sqlarea where executions < 5 group by substr(sql_text,1,80) having count(*) > 30 order by 2;游标的观察:set pages 100; select sum(a.value), b.name from v$sesstat a, v$statname b where a.statistic# = b.statistic# and b.name = 'opened cursors current' group by b.name; select count(0) from v$open_cursor; select user_name,sql_text,count(0) from v$open_cursor group by user_name,sql_text having count(0)>40; 查看当前用户&username执行的SQL:select sql_text from v$sqltext_with_newlines where (hash_value,address) in (select sql_hash_value,sql_address from v$session where username='&username') order by address,piece;

⑧ oracle中非常难的sql,大家帮解答下,谢啦

主要目的动态拼出如下sql
select tb.time,
max(case
when tb.id = 1 then
user1
end) as a001,
max(case
when tb.id = 2 then
user1
end) as a002,
max(case
when tb.id = 3 then
user1
end) as a003
from tb
group by tb.time;

--以下为测试部分
create table ta (id int,name varchar2(20));
create table tb (id1 int,time varchar2(20),user1 varchar2(20),id int);
insert into ta values(1,'a001');
insert into ta values(2,'a002');
insert into ta values(3,'a003');
insert into tb values(1,'2011-01-01','u001',1);
insert into tb values(2,'2011-01-01','u002',2);
insert into tb values(3,'2011-01-01','u003',3);
insert into tb values(4,'2011-01-02','u004',1);
insert into tb values(5,'2011-01-02','u001',2);
insert into tb values(6,'2011-01-02','u001',3);

create or replace procere test_p
as
sql_str varchar2(10000);
begin
for rec in ( select * from ta ) loop
sql_str := sql_str||'max(case when tb.id = '||rec.id||' then user1 end) as '|| rec.name ||',' ;
end loop;
sql_str := 'select tb.time, '||rtrim(sql_str,',')||' from tb group by tb.time';
--dbms_output.put_line(sql_str);
execute immediate sql_str;
end;

最后执行test_p 就能达到你想要的效果了。

⑨ oracle sql问题

select *
from custom
where custid = (
select custid
from (select custid, sum(weight) as val
from shipstuff group by custid)
where rowunm=1
order by val desc
)

⑩ 请教oracle中的SQL问题

1. select id,name,mark from student s, (select id, max(mark) from student group by id) t where s.id=t.id and s.mark =t.mark ;
2. max,avg这些汇总函数用在字符串类型上完全可以,只是你要知道字符串的大小比较规则就是了。

热点内容
码数据库 发布:2024-05-03 00:15:03 浏览:556
旗鱼影视缓存教程 发布:2024-05-02 23:57:46 浏览:592
c语言中的阶层 发布:2024-05-02 23:52:14 浏览:861
qt编程快速入门 发布:2024-05-02 23:41:04 浏览:974
linux搭建域名服务器 发布:2024-05-02 23:28:36 浏览:362
java如何将class文件反编译 发布:2024-05-02 23:22:06 浏览:500
新一代唐dm哪个配置最划算 发布:2024-05-02 22:45:16 浏览:229
安卓怎么安装到sd卡 发布:2024-05-02 22:41:32 浏览:224
web聊天源码 发布:2024-05-02 22:41:29 浏览:286
php定时脚本 发布:2024-05-02 22:18:41 浏览:312