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

Oracle 與 SQL Server 常用函數對照表(數學、字串、日期、分析)

     編輯:關於SqlServer

本表整理 Oracle 與 SQL Server(T-SQL)常用內建函數對照,方便跨平台開發與移植。僅列出核心對應關係,非詳盡清單,實際專案請以官方文件為準。

數學函數

功能SQL ServerOracle
絕對值ABS(-1)ABS(-1)
向上取整CEILING(-1.001)CEIL(-1.001)
向下取整FLOOR(-1.001)FLOOR(-1.001)
截取整數CAST(-1.002 AS INT)TRUNC(-1.002)
四捨五入ROUND(1.23456,4)ROUND(1.23456,4)
e 的 n 次方EXP(1)EXP(1)
自然對數LOG(2.718...)LN(2.718...)
10 為底對數LOG10(10)LOG(10,10)
平方SQUARE(4)POWER(4,2)
平方根SQRT(4)SQRT(4)
任意次方POWER(3,4)POWER(3,4)
隨機數RAND()DBMS_RANDOM.VALUE(0,1)
正負號SIGN(-8)SIGN(-8)
圓周率PI()—
三角函數SIN/COS/TAN (弧度)SIN/COS/TAN (弧度)
反三角函數ASIN/ACOS/ATAN/ATN2ASIN/ACOS/ATAN/ATAN2
弧度↔角度DEGREES / RADIANS—

彙總比較函數

功能SQL ServerOracle
集合最大值MAX() 過衍生表GREATEST(1,-2,4,3)
集合最小值MIN() 過衍生表LEAST(1,-2,4,3)
NULL 替換ISNULL(F2,10)NVL(F2,10)

字串函數

功能SQL ServerOracle
字元→ASCIIASCII('a')ASCII('a')
ASCII→字元CHAR(97)CHR(97)
串接'11'+'22'+'33'CONCAT('11','22') || '33'
子串位置CHARINDEX('s','sdsq',2)INSTR('sdsq','s',2)
模糊位置PATINDEX('%d%q%','sdsfasdqe')INSTR(...,1,2) 控制出現次數
取子串SUBSTRING('abcd',2,2)SUBSTR('abcd',2,2)
子串替換STUFF('abcdef',2,3,'ijklmn')REPLACE('abcdef','bcd','ijklmn')
逐字元轉換—TRANSLATE('fasdbfasegas','fa','我')
長度LEN / DATALENGTHLENGTH
大小寫LOWER / UPPERLOWER / UPPER
單詞首字大寫—INITCAP('abcd dsaf')
左填充SPACE(10)+'abcd'LPAD('abcd',14)
右填充'abcd'+SPACE(10)RPAD('abcd',14)
去空白LTRIM / RTRIMLTRIM / RTRIM / TRIM
重複字串REPLICATE('abcd',2)—
發音比對SOUNDEX / DIFFERENCESOUNDEX

日期函數

功能SQL ServerOracle
目前日期時間GETDATE()SYSDATE
日期加減天GETDATE() + 1SYSDATE + 1
取日期部份CONVERT(CHAR(10),GETDATE(),20)TRUNC(SYSDATE) / TO_CHAR(...,'YYYY-MM-DD')
取時間部份CONVERT(CHAR(8),GETDATE(),108)TO_CHAR(SYSDATE,'HH24:MI:SS')
擷取年/月/日等DATEPART / DATENAMETO_CHAR(...,'YYYY'/'MM'/'DD'...)
月末日—LAST_DAY(SYSDATE)
本週指定 weekday—NEXT_DAY(SYSDATE,7)
字串轉日期CAST('2004-09-08' AS DATETIME)TO_DATE('2004-01-05','YYYY-MM-DD')
日期差(秒)DATEDIFF(SS,GETDATE(),GETDATE()+12.3)(D1-D2)*24*60*60
日期加減間隔DATEADD(MI,8,GETDATE())SYSDATE + 8/60/24
時區轉換—NEW_TIME(SYSDATE,'YDT','GMT')

使用建議

  • 移植時以功能對等為原則,而非語法逐行對映。
  • 日期格式化、NULL 處理、字串串接差異最大,建議封裝通用函數庫。
  • 分析/視窗函數(ROW_NUMBER, RANK, LAG/LEAD 等)兩者語法高度相容,可直接對應。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved