首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

SQL Server 與 Oracle 常用函數對照表:數學、字符串、日期、空值處理全覆蓋

     編輯:Oracle 教學

SQL Server vs Oracle 核心內建函數完整對照速查表

跨庫開發、遷移項目中,函數語法差異是高頻阻點。本文系統對照數學、三角、比較、字符串、日期、空值處理六大類 45 個常用函數,附參數差異與返回值示例,可直接打印作桌面速查卡。

一、數學函數

功能SQL ServerOracle備註
絕對值ABS(x)ABS(x)同
向上取整CEILING(x)CEIL(x)
向下取整FLOOR(x)FLOOR(x)同
截取整數CAST(x AS INT)TRUNC(x)
四捨五入ROUND(x, d)ROUND(x, d)Oracle 不保留尾部 0
e^xEXP(x)EXP(x)同
自然對數LOG(x)LN(x)
以10為底對數LOG10(x)LOG(10, x)
平方SQUARE(x)POWER(x,2)
平方根SQRT(x)SQRT(x)同
冪運算POWER(x, y)POWER(x, y)同
隨機數RAND()DBMS_RANDOM.VALUE(0,1)
符號SIGN(x)SIGN(x)同

二、字符串函數

功能SQL ServerOracle備註
字符→ASCIIASCII(c)ASCII(c)同
ASCII→字符CHAR(n)CHR(n)
拼接'a'+'b' 或 CONCAT'a'||'b' 或 CONCATOracle 推薦 ||
子串位置CHARINDEX(sub, str, start)INSTR(str, sub, start, occurrence)參數順序不同
模糊位置PATINDEX('%pat%', str)無直接對應,用 REGEXP_INSTR
取子串SUBSTRING(str, start, len)SUBSTR(str, start, len)同
替換指定長度STUFF(str, start, len, new)REPLACE(str, old, new)語義不同
全量替換REPLACE(str, old, new)TRANSLATE(str, from, to)TRANSLATE 逐字符映射
長度LEN / DATALENGTHLENGTH / LENGTHB
大小寫UPPER / LOWERUPPER / LOWER同
首字母大寫無INITCAP(str)
左填充SPACE(n)+strLPAD(str, n, ' ')
右填充str+SPACE(n)RPAD(str, n, ' ')
去空格LTRIM / RTRIMLTRIM / RTRIM / TRIMOracle 有 TRIM
重複字符串REPLICATE(str, n)無 (可用 RPAD/LPAD 技巧)
諧音匹配SOUNDEX / DIFFERENCESOUNDEXOracle 無 DIFFERENCE

三、日期時間函數

功能SQL ServerOracle備註
當前時間GETDATE()SYSDATE
日期加減天DATEADD(day, n, dt)dt + nOracle 直接數學運算
日期差(秒)DATEDIFF(ss, dt1, dt2)(dt2-dt1)*86400
日期加減分DATEADD(mi, n, dt)dt + n/1440
格式化日期CONVERT(CHAR(10), dt, 20)TO_CHAR(dt, 'YYYY-MM-DD')
格式化時間CONVERT(CHAR(8), dt, 108)TO_CHAR(dt, 'HH24:MI:SS')
提取部分DATEPART/DATENAMETO_CHAR(dt, 'fmt')fmt 見下表
字符串轉日期CAST('...' AS DATETIME)TO_DATE('...', 'fmt')
月末日期EOMONTH(dt) (2012+)LAST_DAY(dt)
下一個周日無直接函數NEXT_DAY(dt, 7)
時區轉換AT TIME ZONE (2016+)NEW_TIME(dt, 'PST', 'GMT')Oracle 參數見下表

四、日期格式化參數對照

含義SQL ServerOracle
年yy, yyyyYY, YYYY
季度qq, qQ
月mm, mMM
日dd, dDD
小時(12/24)hh / hh24HH12 / HH24
分mi, nMI
秒ss, sSS

五、空值處理與集合極值

功能SQL ServerOracle
空值替換ISNULL(col, val)NVL(col, val) / COALESCE
最大值MAX() 聚合GREATEST(v1, v2, ...)
最小值MIN() 聚合LEAST(v1, v2, ...)
建議收藏:遷移項目遇到未列函數,優先查閱官方文檔 TRANSLATE_SQL 類工具或編寫 UDF 封裝差異。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved