站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        db2與oracle的sql語(yǔ)句有什么區(qū)別

        區(qū)別:1、db2用“create table a like b”創(chuàng)建類似表,oracle用“create table a as select * from b”;2、db2用varchar類型轉(zhuǎn)換,oracle用“to_char”函數(shù)轉(zhuǎn)換。

        db2與oracle的sql語(yǔ)句有什么區(qū)別

        本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。

        db2與oracle的sql語(yǔ)句有什么區(qū)別

        1.創(chuàng)建類似表語(yǔ)法

        Oracle :  	create table a as select * from b; DB2    :  	create table a like b; 		  	(8版本有效,9版本無(wú)效) 	create table new_a as select col1,col2... from a definition only

        2.快速清空大表語(yǔ)法

        Oracle :  	truncate table a; DB2    : 	alter table a active not logged initially with empty table;

        3.取前N條數(shù)據(jù)語(yǔ)法

        Oracle :  	select * from a where rownum <= N; DB2    : 	select * from a fetch first N rows only;

        4.取得系統(tǒng)時(shí)間語(yǔ)法

        Oracle : 	select sysdate from dual; DB2    : 	select current timestamp from sysibm.sysdummy1;

        5.空值轉(zhuǎn)換方式不同

        Oracle : 	select col1,col2,nvl(col3,'0') from tablename; (判斷col3字段是否為空,不為空就輸出原來(lái)的數(shù)值,為空就輸出0) DB2   : 	select col1,col2,value(col3,'0') from tablename; 	 	(mysql和Db2可以使用Coalesce(col3,'0')函數(shù)來(lái)實(shí)現(xiàn)上述功能)
        Coalesce()函數(shù)
        這個(gè)函數(shù)主要用來(lái)進(jìn)行空值處理,其參數(shù)格式如下: COALESCE ( expression,value1,value2……,valuen)  COALESCE()函數(shù)的第一個(gè)參數(shù)expression為待檢測(cè)的表達(dá)式,而其后的參數(shù)個(gè)數(shù)不定。 COALESCE()函數(shù)將會(huì)返回包括expression在內(nèi)的所有參數(shù)中的第一個(gè)非空表達(dá)式。 	如果expression不為空值則返回expression; 	否則判斷value1是否是空值,如果value1不為空值則返回value1; 	否則判斷value2是否是空值,如果value2不為空值則返回value2; 	……以此類推, 	如果所有的表達(dá)式都為空值,則返回NULL。

        6.類型轉(zhuǎn)換方式不同

        oracle : 	select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; DB2    : 	select varchar(current timestamp) from sysibm.sysdummy1;

        解析:

        Oracle數(shù)據(jù)類型改變函數(shù):to_char()、to_date()、to_number()等; 	如果僅僅取年,月,日等,可以用 		to_char(sysdate, 'YYYY'), 		to_char('MM') , 		to_char('DD')取得。 	只取年月日TRUNC(SYSDATE)。 	取時(shí)分秒TO_CHAR(SYSDATE,'HH24:MI:SS')。  DB2數(shù)據(jù)類型改變函數(shù):char()、varchar()、int()、date()、time()等; 	取得年,月,日等的寫法: 		YEAR(current timestamp), 		MONTH(current timestamp), 		DAY(current timestamp), 		HOUR(current timestamp), 		MINUTE(current timestamp), 		SECOND(current timestamp), 		MICROSECOND(current timestamp), 	只取年月日可以用 		DATE(current timestamp), 	取時(shí)分秒 		TIME(current timestamp)。 	Char()是定長(zhǎng)字符串(1-255),varchar()為非定長(zhǎng)字符串(1-32672)日期, 	時(shí)間形態(tài)變?yōu)樽址螒B(tài):  		char(current date), 		char(current time) 	將字符串轉(zhuǎn)換成日期或時(shí)間形態(tài): 		TIMESTAMP('2002-10-2012:00:00'), 		DATE('2002-10-20'), 		DATE('10/20/2002'), 		TIME('12:00:00')

        目前DB2 V8也支持to_char和to_date,V9版新增了to_number

        7.字符串轉(zhuǎn)換為日期方式不同(To_Number/cast)

        Oracle: 	select to_number('123') from dual; 	select cast('123' as integer) from dual; DB2   : 	select cast('123' as integer) from sysibm.sysdummy1; 	select cast(current time as char(8)) from sysibm.sysdummy1;

        8.子查詢

        Oracle: 	直接用子查詢  Db2:WITH語(yǔ)句 	WITH  a1 AS(SELECT max(id) AS aa1 FROM test )SELECT id ,aa1 FROM test ,a1

        9.遞歸查詢(分層查詢)

        Oracle遞歸查詢:CONNECT BY PRIOR ... START WITH ... DB2   遞歸查詢:DB2較難理解,要WITH一個(gè)虛擬表
        Oracle:
        //從child是son的數(shù)據(jù)向上查詢出所有的長(zhǎng)輩select distinct test_parent from (        select t.test_parent from t_test t                connect by prior t.test_parent = t.test_child                start with t.test_child = 'son' )

        db2與oracle的sql語(yǔ)句有什么區(qū)別
        了解

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 91不卡在线精品国产| 久久久久久一区国产精品| 国产精品无码专区在线观看| 综合在线视频精品专区| 99久久精品无码一区二区毛片 | 久久夜色精品国产噜噜亚洲AV| 国产午夜福利精品久久| 国产精品久久久久久福利漫画 | 国产精品成人啪精品视频免费| 91精品国产色综合久久| 少妇精品久久久一区二区三区 | 老司机性色福利精品视频| 四虎精品亚洲一区二区三区| 99久久精品国产毛片| 国产精品91av| 国产成人精品优优av| 久久夜色精品国产欧美乱| 一本色道久久综合亚洲精品| 久久精品国产欧美日韩| 国产午夜精品理论片久久| 成人精品一区二区三区电影黑人| 91精品全国免费观看青青| 久久精品欧美日韩精品| 亚洲色精品aⅴ一区区三区| 欧美精品人人做人人爱视频| 国产亚洲午夜高清国产拍精品| 99视频在线精品国自产拍亚瑟 | 色花堂国产精品第一页| 精品少妇一区二区三区视频| 500av大全导航精品| 99re这里只有精品6| 2018国产精华国产精品| 国产精品国产三级国产普通话| 久久精品国产清高在天天线| 久久久久人妻精品一区二区三区| 亚洲AV日韩精品久久久久久久| 伊人久久精品无码二区麻豆| 亚洲AV永久青草无码精品| 久久国产乱子伦免费精品| 久久国产精品无码HDAV| 国内精品伊人久久久久AV影院|