當前位置:首頁 » 編程語言 » 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這些匯總函數用在字元串類型上完全可以,只是你要知道字元串的大小比較規則就是了。

熱點內容
119濃度的鹽酸怎麼配置 發布:2024-04-20 06:23:38 瀏覽:119
資料庫pf 發布:2024-04-20 05:57:36 瀏覽:393
c語言編譯出現連接錯誤 發布:2024-04-20 05:42:18 瀏覽:198
湖北戴爾伺服器維修系統雲主機 發布:2024-04-20 05:36:47 瀏覽:62
android上傳數據 發布:2024-04-20 05:36:43 瀏覽:142
python替換文本內容 發布:2024-04-20 05:21:22 瀏覽:899
urllib3源碼 發布:2024-04-20 05:11:23 瀏覽:34
如何通過運行打開伺服器文件 發布:2024-04-20 00:06:50 瀏覽:671
電腦百度網盤怎麼上傳 發布:2024-04-19 23:49:15 瀏覽:417
陸放四驅買哪個配置 發布:2024-04-19 23:49:08 瀏覽:407