oracle と db2 の SQL の違い: 1. Oracle は「create table a as select * from b」を使用して同様のテーブルを作成し、db2 は「create table a like b」を使用して同様のテーブルを作成します。 2. Oracle "to_char" 関数変換を使用します。db2 は varchar 型変換を使用します。
このチュートリアルのオペレーティング システム: Windows 10 システム、Oracle バージョン 19c、Dell G3 コンピューター。
db2 と oracle の SQL ステートメントの違いは何ですか
1. 同様のテーブル構文を作成します
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
2. 大きなテーブル構文をすばやくクリアします
Oracle : truncate table a; DB2 : alter table a active not logged initially with empty table;
3. 最初の N データ構文を取得します
Oracle : select * from a where rownum <= N; DB2 : select * from a fetch first N rows only;
4. システム時刻構文を取得します
Oracle : select sysdate from dual; DB2 : select current timestamp from sysibm.sysdummy1;
5. さまざまな null 値変換メソッド
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')函数来实现上述功能)
Coalesce( ) 関数
这个函数主要用来进行空值处理,其参数格式如下: COALESCE ( expression,value1,value2……,valuen) COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。 COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。 如果expression不为空值则返回expression; 否则判断value1是否是空值,如果value1不为空值则返回value1; 否则判断value2是否是空值,如果value2不为空值则返回value2; ……以此类推, 如果所有的表达式都为空值,则返回NULL。
6. さまざまな型変換メソッド
oracle : select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; DB2 : select varchar(current timestamp) from sysibm.sysdummy1;
分析:
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')
現在、DB2 V8 は to_char と to_date もサポートしており、V9 バージョンには to_number
# が追加されています。 ## 7. 文字列を日付に変換するさまざまな方法 (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语句 WITH a1 AS(SELECT max(id) AS aa1 FROM test )SELECT id ,aa1 FROM test ,a19. 再帰クエリ (階層クエリ)
Oracle递归查询:CONNECT BY PRIOR ... START WITH ... DB2 递归查询:DB2较难理解,要WITH一个虚拟表Oracle:
//从child是son的数据向上查询出所有的长辈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递归查询写法with par_test(test_child,test_parent) as( select test_child,test_parent from t_test where child='grandchild' -- 设置递归起点 union all select t.test_child,t.test_parent from par_test pt,t_test t where pt.test_parent = t.test_child ----递归的方向为从子向父)select distinct test_parent from par_test
比较大的差别: 1. char大小对比 Oracle: char 2000 DB2 : char 254 2. 日期类型 Oracle: date datetime DB2 :date(日期) time(时间)timestamp(日期时间)11. rowId
Oracle中它是由数据库唯一产生的,在程序中可以获得 DB2 在V8版本才有此功能12 .decode メソッド
Oracle: decode方法(decode(条件,值1,翻译值1,值2,翻译值2,...,值n,翻译值n,缺省值)) 【函数用法在下边有链接】 或者 case语句 DB2: 只有case表达式 示例语句: select id,name, case when integer(flag)=0 then '假' when integer(flag)=1 then '真' else '异常' end from test 或者 select id,name, case integer(flag) when 0 then '假' when 1 then '真' else '异常' end from test
以上がOracle と db2 SQL の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

WebStorm Mac版
便利なJavaScript開発ツール
