樓主啊,你這SQL寫得也太復(fù)雜了,為何不用 UPDATE INNER JOIN ON 的方式實(shí)現(xiàn)呢?

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為四子王企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè),四子王網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
SQL語句如下:
update
count_table c inner join
(select count(*) cout,cust_id from alarm_table
where
to_days(alarm_date) = to_days(now())
group by cust_id) z
on c.cust_id = z.cust_id
set
c.alarm_count=z.cout,c.date=current_date
where
c.cust_id = z.cust_id;
參考一下
TO_DATE格式(以時(shí)間:2007-11-02 13:45:25為例)
1、日期和字符轉(zhuǎn)換函數(shù)用法(to_date,to_char)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;?? //日期轉(zhuǎn)化為字符串
select to_char(sysdate,'yyyy')? as nowYear?? from dual;?? //獲取時(shí)間的年
select to_char(sysdate,'mm')??? as nowMonth? from dual;?? //獲取時(shí)間的月
select to_char(sysdate,'dd')??? as nowDay??? from dual;?? //獲取時(shí)間的日
select to_char(sysdate,'hh24')? as nowHour?? from dual;?? //獲取時(shí)間的時(shí)
select to_char(sysdate,'mi')??? as nowMinute from dual;?? //獲取時(shí)間的分
select to_char(sysdate,'ss')??? as nowSecond from dual;?? //獲取時(shí)間的秒
2、字符串和時(shí)間互轉(zhuǎn)
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual
select to_char( to_date(222,'J'),'Jsp') from dual //顯示Two Hundred Twenty-Two?
擴(kuò)展資料
date 轉(zhuǎn)換為字符串:
to_char(日期,”轉(zhuǎn)換格式” ) 即把給定的日期按照“轉(zhuǎn)換格式”轉(zhuǎn)換。
轉(zhuǎn)換的格式:
表示year的:y 表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位數(shù)表示年。
表示month的:mm 用2位數(shù)字表示月;mon 用簡(jiǎn)寫形式 比如11月或者nov ;month 用全稱 比如11月或者november。
表示day的:dd 表示當(dāng)月第幾天;ddd表示當(dāng)年第幾天;dy 當(dāng)周第幾天 簡(jiǎn)寫 比如星期五或者fri;day當(dāng)周第幾天全寫。比如星期五或者friday。
表示hour的:hh 2位數(shù)表示小時(shí) 12進(jìn)制; hh24 2位數(shù)表示小時(shí) 24小時(shí)。
表示minute的:mi 2位數(shù)表示分鐘。
表示second的:ss 2位數(shù)表示秒60進(jìn)制。
select ID
from (select ID,
time,
coun,
lag(coun, 1) over(partition by ID order by time) lag_coun1,
lag(coun, 2) over(partition by ID order by time) lag_coun2,
lag(coun, 3) over(partition by ID order by time) lag_coun3,
lag(coun, 4) over(partition by ID order by time) lag_coun4,
lag(coun, 5) over(partition by ID order by time) lag_coun5,
lag(coun, 6) over(partition by ID order by time) lag_coun6
from (select ID, trunc(add_time, day) time, count(*) coun
from table
where time 10
and time 24
group by ID, trunc(add_time)))
where coun 30
and lag_coun1 30
and lag_coun2 30
and lag_coun3 30
and lag_coun4 30
and lag_coun5 30
and lag_coun6 30
帶有單引號(hào)或者符號(hào)的字符串,需要轉(zhuǎn)義。
'單引號(hào)用連續(xù)的兩的單引號(hào)取代。
符號(hào)用兩個(gè)連續(xù)的符號(hào)取代
輸出
wo
shi
'lanzhoudaxue'
de
xuesheng,可以這樣寫
begin
dbms_output.put_line('wo
shi
''lanzhoudaxue''
de
xuesheng');
end;
這里有一個(gè)前提,就是每個(gè)地方只有一次到件,一次發(fā)件,如果出現(xiàn)兩次以上的到件或者發(fā)件,那么根據(jù)我寫的sql只能取到最大值,也就是說只會(huì)有一條記錄,這件要注意。如果存在兩條以上,那么就要根據(jù)業(yè)務(wù)去判斷了,或者在下面那條(2)語句加group的條件,或者用其他的函數(shù)(不用max)等等。要根據(jù)實(shí)際需求寫sql,切忌生搬硬套。
(1)不知道你是什么版本的oracle,如果是11Gr2以上的,那么可以用pivot(具體的使用方法自己去找找吧,網(wǎng)上有很多,我只寫你例子里的語句)
select * from table
pivot (max(時(shí)間) for 收發(fā)件 in ('發(fā)件' as 發(fā)件時(shí)間,'到件'as 到件時(shí)間));
(2)其他的方式 case when也可以,稍微麻煩一點(diǎn)。decode和case when類似。
select 省份,max(case when 收發(fā)件='到件' then 時(shí)間 end) 到件時(shí)間,max(case when 收發(fā)件='發(fā)件' then 時(shí)間 end) 發(fā)件時(shí)間 from table group by 省份
您可以使用cast函數(shù)將數(shù)字字符串轉(zhuǎn)化為整型。
cast函數(shù)格式如下:
CAST(字段名 as int);
拓展資料
結(jié)構(gòu)化查詢語言(Structured Query Language)簡(jiǎn)稱SQL(發(fā)音:/?es kju? ?el/ "S-Q-L"),是一種特殊目的的編程語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng);同時(shí)也是數(shù)據(jù)庫腳本文件的擴(kuò)展名。
結(jié)構(gòu)化查詢語言是高級(jí)的非過程化編程語言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng), 可以使用相同的結(jié)構(gòu)化查詢語言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語言語句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能。
1986年10月,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)對(duì)SQL進(jìn)行規(guī)范后,以此作為關(guān)系式數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言(ANSI X3. 135-1986),1987年得到國(guó)際標(biāo)準(zhǔn)組織的支持下成為國(guó)際標(biāo)準(zhǔn)。不過各種通行的數(shù)據(jù)庫系統(tǒng)在其實(shí)踐過程中都對(duì)SQL規(guī)范作了某些編改和擴(kuò)充。所以,實(shí)際上不同數(shù)據(jù)庫系統(tǒng)之間的SQL不能完全相互通用。
參考資料:百度百科_SQL
網(wǎng)頁名稱:oracle語句怎么轉(zhuǎn)換,oracle語句轉(zhuǎn)mysql
當(dāng)前鏈接:http://chinadenli.net/article13/dsipggs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)