Der SQL-Unterschied zwischen Oracle und db2: 1. Oracle verwendet „Tabelle a erstellen als Auswahl * aus b“, um eine ähnliche Tabelle zu erstellen, und db2 verwendet „Tabelle a wie b erstellen“, um eine ähnliche Tabelle zu erstellen. 2. Oracle verwendet Die Funktion „to_char“ konvertiert, db2 verwendet die Konvertierung des Varchar-Typs.
Das Betriebssystem dieses Tutorials: Windows 10-System, Oracle Version 19c, Dell G3-Computer.
Was ist der Unterschied zwischen db2- und Oracle-SQL-Anweisungen
1. Erstellen Sie schnell eine große Tabellensyntax
Oracle : create table a as select * from b; DB2 : create table a like b; (8版本有效,9版本无效) create table new_a as select col1,col2... from a definition only
4 Systemzeitgrammatik
Oracle : truncate table a; DB2 : alter table a active not logged initially with empty table;
5. Die Methoden zur Nullwertkonvertierung sind unterschiedlich Version hat to_number
7 hinzugefügt. Zeichenfolgen werden auf unterschiedliche Weise in Datumsangaben umgewandelt (To_Number/cast)
Oracle : select * from a where rownum <= N; DB2 : select * from a fetch first N rows only;
8. Rekursive Abfrage (hierarchische Abfrage)
Oracle : select sysdate from dual; DB2 : select current timestamp from sysibm.sysdummy1;
Oracle : select col1,col2,nvl(col3,'0') from tablename; (判断col3字段是否为空,不为空就输出原来的数值,为空就输出0) DB2 : select col1,col2,value(col3,'0') from tablename; (mysql和Db2可以使用Coalesce(col3,'0')函数来实现上述功能)
Lernen mehr: Hierarchische Oracle-Abfrage (rekursive Abfrage): Beginnen Sie mit ... connect by prior und dem Ebenenschlüsselwort
DB2:
这个函数主要用来进行空值处理,其参数格式如下: COALESCE ( expression,value1,value2……,valuen) COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。 COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。 如果expression不为空值则返回expression; 否则判断value1是否是空值,如果value1不为空值则返回value1; 否则判断value2是否是空值,如果value2不为空值则返回value2; ……以此类推, 如果所有的表达式都为空值,则返回NULL。Wie in der Abbildung oben gezeigt, beginnen Sie beim Enkel, um zuerst alle übergeordneten Knoten abzufragen Legen Sie den Startpunkt der virtuellen Tabelle fest, d Das endgültige Abfrageergebnis lautet: test_parentson
father
grandpa
10. Es gibt Unterschiede in den Datentypen
oracle : select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; DB2 : select varchar(current timestamp) from sysibm.sysdummy1;
11. Über rowId
Oracle数据类型改变函数:to_char()、to_date()、to_number()等; 如果仅仅取年,月,日等,可以用 to_char(sysdate, 'YYYY'), to_char('MM') , to_char('DD')取得。 只取年月日TRUNC(SYSDATE)。 取时分秒TO_CHAR(SYSDATE,'HH24:MI:SS')。 DB2数据类型改变函数: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), 取时分秒 TIME(current timestamp)。 Char()是定长字符串(1-255),varchar()为非定长字符串(1-32672)日期, 时间形态变为字符形态: char(current date), char(current time) 将字符串转换成日期或时间形态: TIMESTAMP('2002-10-2012:00:00'), DATE('2002-10-20'), DATE('10/20/2002'), TIME('12:00:00')12.decode-Methode
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;
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Oracle und DB2 SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!