BLOG ARTICLE DB/MS-SQL | 1 ARTICLE FOUND

  1. 2009.01.26 ORACLE , SQL SERVER 의 다른점 정리

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

 
출처 : http://b.drmg.net/archives/cat_279301.html

AND