1.NullとEmptyの違い
ORACLE : EmptyとNullを曖昧に判断する。
SQLSERVER : EmptyとNullを明確に判断する。
ORACLE : EmptyとNullを曖昧に判断する。
SQLSERVER : EmptyとNullを明確に判断する。
2.Nullのソート順
ORACLE : 昇順で、Null値は最後に配置される。
SQLSERVER : 昇順で、Null値は先頭に配置される。
ORACLE : 昇順で、Null値は最後に配置される。
SQLSERVER : 昇順で、Null値は先頭に配置される。
3.Null置き換え関数
ORACLE : Nvl(Field,Value)
SQLSERVER : IsNull(Field,Value)
ORACLE : Nvl(Field,Value)
SQLSERVER : IsNull(Field,Value)
4.Trim
ORACLE : Trim存在する。
SQLSERVER : RTrim/LTrimならある。
ORACLE : Trim存在する。
SQLSERVER : RTrim/LTrimならある。
5.左文字詰め('0'埋めだと)
ORACLE : LPAD([文字列],38,'0')
SQLSERVER : REPLICATE('0',38-DATALENGTH([文字列]))+[文字列]
ORACLE : LPAD([文字列],38,'0')
SQLSERVER : REPLICATE('0',38-DATALENGTH([文字列]))+[文字列]
6.ロック(占有ロックとの事。。)
Oracle : FOR UPDATE
SQLSERVER : (UPDLOCK)
Oracle : FOR UPDATE
SQLSERVER : (UPDLOCK)
7.文字型→日付型変換
ORACLE : TO_DATE('2000/01/01 10:20:30','yyyy/mm/dd hh24:mi:ss')
SQLSERVER : CONVERT ( datetime,'2000/01/01 10:20:30',120)
ORACLE : TO_DATE('2000/01/01 10:20:30','yyyy/mm/dd hh24:mi:ss')
SQLSERVER : CONVERT ( datetime,'2000/01/01 10:20:30',120)
8.日付型→文字型変換
ORACLE : TO_CHAR(更新日時,'YYYYMMDD')
SQLSERVER : CONVERT(varchar,更新日時,112)
ORACLE : TO_CHAR(更新日時,'YYYYMMDD')
SQLSERVER : CONVERT(varchar,更新日時,112)
9.システム日付
ORACLE : SYSDATE(current_timestampも使えたが、グリニッジっぽい値になってしもうた。なぜ?)
SQLSERVER : current_timestamp
ORACLE : SYSDATE(current_timestampも使えたが、グリニッジっぽい値になってしもうた。なぜ?)
SQLSERVER : current_timestamp
10.文字列切り出し
ORACLE : SELECT SUBSTR([文字列],2,2) FROM DUAL
SQLSERVER : SELECT SUBSTRING([文字列],2,2)
ORACLE : SELECT SUBSTR([文字列],2,2) FROM DUAL
SQLSERVER : SELECT SUBSTRING([文字列],2,2)
11.数値→文字列変換
ORACLE : TO_CHAR([文字列])
SQLSERVER : 数値から文字型であれば、暗黙の変換で大丈夫。
(明示的に書くならば、CAST or CONVERT使用)
ORACLE : TO_CHAR([文字列])
SQLSERVER : 数値から文字型であれば、暗黙の変換で大丈夫。
(明示的に書くならば、CAST or CONVERT使用)
12.文字列連結
ORACLE : ||
SQLSERVER : +
ORACLE : ||
SQLSERVER : +
13.JOIN時のテーブル別名
ORACLE : 無くても動いた。。。
SQLSERVER : テーブル別名必須っぽい?(UNIONにも必要とは。。)
ORACLE : 無くても動いた。。。
SQLSERVER : テーブル別名必須っぽい?(UNIONにも必要とは。。)
14.EMPTY→数値型の更新について。
ORACLE : EMTPY→数値型へ更新が可能。Nullの扱いとなる。
SQLSERVER : EMPTY→数値型へ更新が不可。数値変換エラーとなる。
ORACLE : EMTPY→数値型へ更新が可能。Nullの扱いとなる。
SQLSERVER : EMPTY→数値型へ更新が不可。数値変換エラーとなる。
15.余分な0が付加される。(ドライバのせい?)
ORACLE : NUMBER(15,5)型から数値1を、SELECTすると結果は、"1"
SQLSERVER : NUMERIC(15,5)型から数値1を、SELECTすると結果は、"1.00000"
ORACLE : NUMBER(15,5)型から数値1を、SELECTすると結果は、"1"
SQLSERVER : NUMERIC(15,5)型から数値1を、SELECTすると結果は、"1.00000"
16.それぞれの予約語に注意。。