<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BlogJava 聯系 聚合 管理  

    Blog Stats

    文章分類

    收藏夾

    隨筆檔案

    文章檔案

    Java相關技術


    kait

    [轉貼]SQL Server和Oracle的常用函數對比

    ---------數學函數
    1.絕對值
    S:select abs(-1) value
    O:select abs(-1) value from dual
    2.取整(大)
    S:select ceiling(-1.001) value
    O:select ceil(-1.001) value from dual
    3.取整(小)
    S:select floor(-1.001) value
    O:select floor(-1.001) value from dual
    4.取整(截取)
    S:select cast(-1.002 as int) value
    O:select trunc(-1.002) value from dual
    5.四捨五入
    S:select round(1.23456,4) value 1.23460
    O:select round(1.23456,4) value from dual 1.2346
    6.e為底的冪
    S:select Exp(1) value 2.7182818284590451
    O:select Exp(1) value from dual 2.71828182
    7.取e為底的對數
    S:select log(2.7182818284590451) value 1
    O:select ln(2.7182818284590451) value from dual; 1
    8.取10為底對數
    S:select log10(10) value 1
    O:select log(10,10) value from dual; 1
    9.取平方
    S:select SQUARE(4) value 16
    O:select power(4,2) value from dual 16
    10.取平方根
    S:select SQRT(4) value 2
    O:select SQRT(4) value from dual 2
    11.求任意數為底的冪
    S:select power(3,4) value 81
    O:select power(3,4) value from dual 81
    12.取亂數
    S:select rand() value
    O:select sys.dbms_random.value(0,1) value from dual;
    13.取符號
    S:select sign(-8) value -1
    O:select sign(-8) value from dual -1
    ----------三角函數相關
    14.圓周率
    S:SELECT PI() value 3.1415926535897931
    O:不知道
    15.sin,cos,tan 參數都以弧度為單位
    例如:select sin(PI()/2) value 得到1(SQLServer)
    16.Asin,Acos,Atan,Atan2 返回弧度
    17.弧度角度互換(SQLServer,Oracle不知道)
    DEGREES:弧度-〉角度
    RADIANS:角度-〉弧度
    ---------數值間比較
    18. 求集合最大值
    S:select max(value) value from
    (select 1 value
    union
    select -2 value
    union
    select 4 value
    union
    select 3 value)a
    O:select greatest(1,-2,4,3) value from dual
    19. 求集合最小值
    S:select min(value) value from
    (select 1 value
    union
    select -2 value
    union
    select 4 value
    union
    select 3 value)a
    O:select least(1,-2,4,3) value from dual
    20.如何處理null值(F2中的null以10代替)
    S:select F1,IsNull(F2,10) value from Tbl
    O:select F1,nvl(F2,10) value from Tbl
    --------字串函數
    21.求字元序號
    S:select ascii('a') value
    O:select ascii('a') value from dual
    22.從序號求字元
    S:select char(97) value
    O:select chr(97) value from dual
    23.連接
    S:select '11'+'22'+'33' value
    O:select CONCAT('11','22')||33 value from dual
    23.子串位置 --返回3
    S:select CHARINDEX('s','sdsq',2) value
    O:select INSTR('sdsq','s',2) value from dual
    23.模糊子串的位置 --返回2,參數去掉中間%則返回7
    // 本文轉自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=996&d=dwn1rn
    S:select patindex('%d%q%','sdsfasdqe') value
    O:oracle沒發現,但是instr可以通過第四個參數控制出現次數
    select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6
    24.求子串
    S:select substring('abcd',2,2) value
    O:select substr('abcd',2,2) value from dual
    25.子串代替 返回aijklmnef
    S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
    O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
    26.子串全部替換
    S:Replace
    O:select Translate('fasdbfasegas','fa','我' ) value from dual
    27.長度
    S:len,datalength
    O:length
    28.大小寫轉換 lower,upper
    29.單詞首字母大寫
    S:沒發現
    O:select INITCAP('abcd dsaf df') value from dual
    30.左補空格(LPAD的第一個參數為空格則同space函數)
    S:select space(10)+'abcd' value
    O:select LPAD('abcd',14) value from dual
    31.右補空格(RPAD的第一個參數為空格則同space函數)
    S:select 'abcd'+space(10) value
    O:select RPAD('abcd',14) value from dual
    32.刪除空格
    S:ltrim,rtrim
    O:ltrim,rtrim,trim
    33. 重複字串
    S:select REPLICATE('abcd',2) value
    O:沒發現
    34.發音相似性比較(這兩個單詞返回值一樣,發音相同)
    S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
    O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
    SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差
    返回0-4,4為同音,1最高
    --------------日期函數
    35.系統時間
    S:select getdate() value
    O:select sysdate value from dual
    36.前後幾日
    直接與整數相加減
    37.求日期
    S:select convert(char(10),getdate(),20) value
    O:select trunc(sysdate) value from dual
    select to_char(sysdate,'yyyy-mm-dd') value from dual
    38.求時間
    S:select convert(char(8),getdate(),108) value
    O:select to_char(sysdate,'hh24:mm:ss') value from dual
    39.取日期時間的其他部分
    S:DATEPART 和 DATENAME 函數 (第一個參數決定)
    O:to_char函數 第二個參數決定
    參數---------------------------------下表需要補充
    year yy, yyyy
    quarter qq, q (季度)
    month mm, m (m O無效)
    dayofyear dy, y (O表星期)
    day dd, d (d O無效)
    week wk, ww (wk O無效)
    weekday dw (O不清楚)
    Hour hh,hh12,hh24 (hh12,hh24 S無效)
    minute mi, n (n O無效)
    second ss, s (s O無效)
    millisecond ms (O無效)
    ----------------------------------------------
    40.當月最後一天
    S:不知道
    O:select LAST_DAY(sysdate) value from dual
    41.本星期的某一天(比如星期日)
    S:不知道
    O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
    42.字串轉時間
    S:可以直接轉或者select cast('2004-09-08'as datetime) value
    O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;
    43.求兩日期某一部分的差(比如秒)
    S:select datediff(ss,getdate(),getdate()+12.3) value
    O:直接用兩個日期相減(比如d1-d2=12.3)
    SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
    44.根據差值求新的日期(比如分鐘)
    S:select dateadd(mi,8,getdate()) value
    O:SELECT sysdate+8/60/24 vaule FROM DUAL;
    45.求不同時區時間
    S:不知道
    O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
    -----時區參數,北京在東8區應該是Ydt-------
    AST ADT 大西洋標準時間
    BST BDT 白令海標準時間
    CST CDT 中部標準時間
    EST EDT 東部標準時間
    GMT 格林尼治標準時間
    HST HDT 阿拉斯加—夏威夷標準時間
    MST MDT 山區標準時間
    NST 紐芬蘭標準時間
    PST PDT 太平洋標準時間
    YST YDT YUKON標準時間
    Oracle支援的字元函數和它們的Microsoft SQL Server等價函數:
    函數 Oracle Microsoft SQL Server
    把字元轉換為ASCII ASCII ASCII
    字串連接 CONCAT (expression + expression)
    把ASCII轉換為字元 CHR CHAR
    返回字串中的開始字元(左起) INSTR CHARINDEX
    把字元轉換為小寫 LOWER LOWER
    把字元轉換為大寫 UPPER UPPER
    填充字串的左邊 LPAD N/A
    清除開始的空白 LTRIM LTRIM
    清除尾部的空白 RTRIM RTRIM
    字串中的起始模式(pattern) INSTR PATINDEX
    多次重複字串 RPAD REPLICATE
    字串的語音表示 SOUNDEX SOUNDEX
    重複空格的字串 RPAD SPACE
    從數位資料轉換為字元資料 TO_CHAR STR
    子串 SUBSTR SUBSTRING
    替換字元 REPLACE STUFF
    將字串中的每個詞首字母大寫 INITCAP N/A
    翻譯字串 TRANSLATE N/A
    字串長度 LENGTH DATELENGTH or LEN
    列表中最大的字串 GREATEST N/A
    列表中最小的字串 LEAST N/A
    如果為NULL則轉換字串 NVL ISNULL
    日期函數
    函數 Oracle Microsoft SQL Server
    日期相加 (date column +/- value) or
    ADD_MONTHS DATEADD
    兩個日期的差 (date column +/- value) or
    MONTHS_BETWEEN DATEDIFF
    當前日期和時間 SYSDATE GETDATE()
    一個月的最後一天 LAST_DAY N/A
    時區轉換 NEW_TIME N/A
    日期後的第一個周日 NEXT_DAY N/A
    代表日期的字串 TO_CHAR DATENAME
    代表日期的整數 TO_NUMBER
    (TO_CHAR)) DATEPART
    日期舍入 ROUND CONVERT
    日期截斷 TRUNC CONVERT
    字串轉換為日期 TO_DATE CONVERT
    如果為NULL則轉換日期 NVL ISNULL
    轉換函數
    函數 Oracle Microsoft SQL Server
    數位轉換為字元 TO_CHAR CONVERT
    字元轉換為數位 TO_NUMBER CONVERT
    日期轉換為字元 TO_CHAR CONVERT
    字元轉換為日期 TO_DATE CONVERT
    16進制轉換為2進制 HEX_TO_RAW CONVERT
    2進制轉換為16進制 RAW_TO_HEX CONVERT
    其他行級別的函數
    函數 Oracle Microsoft SQL Server
    返回第一個非空運算式 DECODE COALESCE
    當前序列值 CURRVAL N/A
    下一個序列值 NEXTVAL N/A
    如果exp1 = exp2, 返回null DECODE NULLIF
    用戶登錄帳號ID數字 UID SUSER_ID
    用戶登錄名 USER SUSER_NAME
    用戶資料庫ID數位 UID USER_ID
    用戶資料庫名 USER USER_NAME
    當前用戶 CURRENT_USER CURRENT_USER
    用戶環境(audit trail) USERENV N/A
    在CONNECT BY子句中的級別 LEVEL N/A
    合計函數
    函數 Oracle Microsoft SQL Server
    Average AVG AVG
    Count COUNT COUNT
    Maximum MAX MAX
    Minimum MIN MIN
    Standard deviation STDDEV STDEV or STDEVP
    Summation SUM SUM
    Variance VARIANCE VAR or VARP
    Oracle還有一個有用的函數EXTRACT,提取並且返回日期時間或時間間隔運算式中特定的時間域:
    EXTRACT(YEAR FROM 日期)
    posted on 2010-04-25 14:01 小天 閱讀(2902) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品亚洲成a人片在线观看| 亚洲精品中文字幕无码蜜桃| 成全高清视频免费观看| 亚洲视频精品在线| 无码成A毛片免费| 337p日本欧洲亚洲大胆艺术| 亚洲精品久久久久无码AV片软件| 人妻18毛片a级毛片免费看| 国产一区二区三区免费看| 日本亚洲中午字幕乱码| 免费播放特黄特色毛片| 香蕉视频免费在线播放| 无码av免费毛片一区二区| 国产亚洲精品国看不卡| 香蕉视频在线免费看| 免费黄色小视频网站| 国产成人久久精品亚洲小说| 亚洲日本中文字幕天堂网| 皇色在线免费视频| 久久精品国产亚洲AV麻豆不卡| 粉色视频成年免费人15次| 亚洲中文无韩国r级电影 | 亚洲欧洲校园自拍都市| 综合在线免费视频| 亚洲国产精品美女久久久久| 亚洲精品影院久久久久久| 免费国产作爱视频网站| 亚洲av无码av在线播放| 黄色成人免费网站| 亚洲sm另类一区二区三区| 亚洲午夜精品久久久久久浪潮| 亚洲av无码专区在线观看下载| **俄罗斯毛片免费| 亚洲av永久无码精品网站| 国产啪精品视频网免费| 青草久久精品亚洲综合专区| 精品国产_亚洲人成在线高清| 国产高潮久久免费观看| 亚洲美女视频一区二区三区| 国产jizzjizz视频全部免费| 久久免费精品一区二区|