目次
SQL変換
システム改修業務に携わる場合、システムをOracleからSQL Serverへ変更するといった業務もあります。
そういった業務関わる場合、Oracleで使用できるSQLとSQL Serverで使用できるSQLは微妙に違うため、変換しなければなりません。
基本的な部分のみですが、その際に参考にする変換表を記載します。
変換表
ORACLE | SQL Server | 備考 |
---|---|---|
|| | CONCAT | SELECT ‘a’||’b’ SELECT CONCAT(‘a’,’b’) ※”+”による文字連結を行う場合、SQLServerでは1つでもNULLが含まれると結果がNULLになる。 CONCATによってNULLが空文字に変換されて連結する |
NVL | IsNull | |
TO_CHAR | Format | TO_CHER(SYSDATE,’YYYYMMDD’) Format(GETDATE(),’yyyyMMdd’) |
ADD_MONTHS ※その他類似関数 | DATEADD | ADD_MONTHS ( sysdate , 3 ) DATEADD(month, 3, GETDATE()) |
TO_DATE TO_TIMESTAMP TO_NUMBER | CONVERT | TO_DATE(‘20200101’) CONVERT(DATETIME, ‘20200101’) |
DECODE | CASE | DECODE(2,1,’ONE’,2,2,NULL) CASE 2 WHEN 1 THEN ‘ONE’ WHEN 2 THEN 2 ELSE NULL END |
MOD | %演算子 | mod(11,3) 11 % 3 |
CEIL | CEILING | |
LPAD | RIGHT | LPAD(‘9’, 3, 0) RIGHT(‘000’ + convert(varchar,9), 3) |
SUBSTR | SUBSTRING | |
TRUNC | FLOOR | |
SYSDATE | GETDATE() | |
SELECT * FROM(~~~) GROP BY aaa | SELECT * FROM(~~~) TEMP GROP BY aaa | 一時テーブル名省略が行えない。 |
コメント