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

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

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

    數(shù)字函數(shù)

    *******************************************************************

    1. ROUND

    *******************************************************************

    The ROUND function returns n rounded to m places right of the decimal point; if m is omitted, to 0 places. m can be negative to round off digits left of the decimal point. m must be an integer.

    Syntax

    image

    PL/SQL Example
    ROUND (153.46) ==> 153
    ROUND (153.46, 1) ==> 153.5
    ROUND (153, -1) ==> 150

    SQL Examples
    SELECT ROUND(15.193,1) "Round"
    FROM DUAL
         Round
    ----------
          15.2
    SELECT ROUND(15.193,-1) "Round"
    FROM DUAL
         Round
    ----------
            20

     

    *******************************************************************

    2. TRUNC

    *******************************************************************

    The TRUNC function truncates the number supplied to the specified number of places. If no place number is supplied, it rounds to zero decimal places. If the place number is negative, the number is truncated that many places to the right of the decimal place. This function does no rounding, it simply deletes the un-wanted numbers and returns the rest.

    Syntax

    image 

     

    PL/SQL Example
    TRUNC (153.46) ==> 153
    TRUNC (153.46, 1) ==> 153.4
    TRUNC (-2003.16, -1) ==> -2000

    SQL Example
    SELECT TRUNC(15.79,1) "Truncate"
    FROM DUAL 
      Truncate
    ----------
          15.7
    SELECT TRUNC(15.79,-1) "Truncate"
      FROM DUAL 
      Truncate
    ----------
            10

     

    *******************************************************************

    3. INSTR

    *******************************************************************

    The INSTR functions search string for substring. The function returns an integer indicating the position of the character in string that is the first character of this occurrence. INSTR calculates strings using characters as defined by the input character set. INSTRB uses bytes instead of characters. INSTRC uses unicode complete characters. INSTR2 uses UCS2 codepoints. INSTR4 uses UCS4 codepoints.
    position is an nonzero integer indicating the character of string where Oracle begins the search. If position is negative, Oracle counts and searches backward from the end of string.
    occurrence is an integer indicating which occurrence of string Oracle should search for. The value of occurrence must be positive.
    Both string and substring can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The value returned is of NUMBER datatype.

    The default values of both position and occurrence are 1, meaning Oracle begins searching at the first character of string for the first occurrence of substring. The return value is relative to the beginning of string, regardless of the value of position, and is expressed in characters. If the search is unsuccessful (if substring does not appear occurrence times after the position character of string), the return value is 0.

    Syntax
    image


    PL/SQL Example
    Find the first occurrence of archie in “bug-or-tv-character?archie”:

    INSTR ('bug-or-tv-character?archie', 'archie') ==> 21
    The starting position and the nth appearance both defaulted to 1.

    Find the first occurrence of archie in the following string starting from position 14:

    INSTR ('bug-or-tv-character?archie', 'ar', 14) ==> 21
    In this example a starting position was specified, which overrides the default of 1; the answer is still the same though. No matter where you start your search, the character position returned by INSTR is always calculated from the beginning of the string.

    Find the second occurrence of archie in the following string:

    INSTR ('bug-or-tv-character?archie', 'archie', 1, 2) ==> 0
    There is only one archie in the string, so INSTR returns 0. Even though the starting point is the default, it cannot be left out if a nondefault nth appearance (2 in this case, for "second occurrence" ) is specified.

    Find the second occurrence of "a" in "bug-or-tv-character?archie":

    INSTR ('bug-or-tv-character?archie', 'a', 1, 2) ==> 15
    The second "a" in this string is the second "a" in "character", which is in the fifteenth position in the string.

    Find the last occurrence of "ar" in "bug-or-tv-character?archie".

    INSTR ('bug-or-tv-character?archie', 'ar', -1) ==> 21
    Use INSTR to confirm that a user entry is valid.

    In the code below, we check to see if the command selected by the user is found in the list of valid commands. If so, that command is executed :

    IF INSTR ('|ADD|DELETE|CHANGE|VIEW|CALC|', '|' || cmd || '|') > 0
    THEN
       execute_command (cmd);
    ELSE
       DBMS_OUTPUT.PUT_LINE
          (' You entered an invalid command. Please try again...');
    END IF;
    SQL Examples
    The following example searches the string "CORPORATE FLOOR", beginning with the third character, for the string "OR". It returns the position in CORPORATE FLOOR at which the second occurrence of "OR" begins:

    SELECT INSTR('CORPORATE FLOOR','OR', 3, 2)
      "Instring" FROM DUAL;
      Instring
    ----------
            14
    The next example searches beginning with the third character from the end:

    SELECT INSTR('CORPORATE FLOOR','OR', -3, 2)
    "Reversed Instring"
         FROM DUAL;
    Reversed Instring
    -----------------
                   2
    This example assumes a double-byte database character set.

    SELECT INSTRB('CORPORATE FLOOR','OR',5,2) "Instring in bytes"
       FROM DUAL;
    Instring in bytes
    -----------------
                   27

     

     

    *******************************************************************

    4. SUBSTR

    *******************************************************************

    The substring functions return a portion of string, beginning at character position, substring_length characters long. SUBSTR calculates lengths using characters as defined by the input character set. SUBSTRB uses bytes instead of characters. SUBSTRC uses unicode complete characters. SUBSTR2 uses UCS2 codepoints. SUBSTR4 uses UCS4 codepoints.
    If position is 0, it is treated as 1.
    If position is positive, Oracle counts from the beginning of string to find the first character.
    If position is negative, Oracle counts backwards from the end of string.
    If substring_length is omitted, Oracle returns all characters to the end of string. If substring_length is less than 1, a null is returned.
    string can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The return value is the same datatype as string. Floating-point numbers passed as arguments to SUBSTR are automatically converted to integers.

    Syntax

    image                                                                                           

     

    PL/SQL Example
    If the absolute value of the starting position exceeds the length of the input string, return NULL:

    SUBSTR ('now_or_never', 200) ==> NULL
    SUBSTR ('now_or_never', -200) ==> NULL
    If starting position is 0, SUBSTR acts as though the starting position was actually 1:

    SUBSTR ('now_or_never', 0, 3) ==> 'now'
    SUBSTR ('now_or_never', 0) ==> 'now_or_never'
    If the substring length is less than or equal to zero, return NULL:
    SUBSTR ('now_or_never', 5, -2) ==> NULL
    SUBSTR ('now_or_never', 1, 0) ==> NULL
    Return the last character in a string:

    SUBSTR ('Another sample string', -1) ==> 'g'
    Remove an element from a string list.

    This is, in a way, the opposite of SUBSTR: we want to extract a portion or substring of a string--and leave the rest of it intact. Suppose the screen maintains a list of selected temperatures, as follows:

    |HOT|COLD|LUKEWARM|SCALDING|
    The vertical bar delimits the different items on the list. When the user deselects "LUKEWARM," we now have to remove it from the list, which becomes:

    |HOT|COLD|SCALDING|
    The best way to accomplish this task is to determine the starting and ending positions of the item to be removed, and then use SUBSTR to take apart the list and put it back together without the specified item.

    The list used in the above example contains 29 characters:

    String:          |HOT|COLD|LUKEWARM|SCALDING|
    Character index: 1234567890123456789012345679
    To extract this item from the list, we need to pull off the portion of the string before "LUKEWARM" as follows:

    SUBSTR ('|HOT|COLD|LUKEWARM|SCALDING|', 1, 10)
    and then we need to extract the trailing portion of the list (after "LUKEWARM"). Notice that we do not want to keep both of the delimiters when we put these pieces back together, so this next SUBSTR does not include the vertical bar at position 19:

    SUBSTR ('|HOT|COLD|LUKEWARM|SCALDING|', 20)
    We use the following concatenation of calls to SUBSTR:

    SUBSTR ('|HOT|COLD|LUKEWARM|SCALDING|', 1, 10)
    ||
    SUBSTR ('|HOT|COLD|LUKEWARM|SCALDING|', 20)
    ==>
       '|HOT|COLD|SCALDING|'
    Remove the middle word in a three-word string (in which each word is separated by an underscore) and switch the order of the first and last words.

    FUNCTION bite_and_switch (tripart_string_in IN VARCHAR2)
       RETURN VARCHAR2
    IS
       /* Location of first underscore */
       first_delim_loc  NUMBER := INSTR (tripart_string_in, '_', 1, 1);
       /* Location of second underscore */
       second_delim_loc NUMBER := INSTR (tripart_string_in, '_', 1, 2);
       /* Return value of function, set by default to incoming string. */
       return_value VARCHAR2(1000) := tripart_string_in;
    BEGIN
       /* Only switch words if two delimiters are found. */
       IF second_delim_loc > 0
       THEN
          /* Pull out  first and second words and stick them together. */
         return_value := 
             SUBSTR (tripart_string_in, 1, first_delim_loc - 1) || '_' ||
             SUBSTR (tripart_string_in, second_delim_loc + 1);
       END IF;
       /* Return the switched string */
       RETURN return_value;
    END bite_and_switch;
    SQL Examples
    The following example returns several specified substrings of "ABCDEFG":

    SELECT SUBSTR('ABCDEFG',3,4) "Substring"
         FROM DUAL;
    Substring
    ---------
    CDEF
    SELECT SUBSTR('ABCDEFG',-5,4) "Substring"
         FROM DUAL;
    Substring
    ---------
    CDEF
    Assume a double-byte database character set:

    SELECT SUBSTRB('ABCDEFG',5,4.2) "Substring with bytes"
         FROM DUAL;
    Substring with bytes
    --------------------
    CD

     

     

    *******************************************************************

    5. RPAD

    *******************************************************************

    The RPAD or Right Pad function returns char1, right-padded to length n with char2, replicated as many times as necessary; char2 defaults to a single blank. If char1 is longer than n, this function returns the portion of char1 that fits in n.RPAD will also perform a trim function on the string if the specified length is less than the actual string length.
    Both char1 and char2 can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The string returned is of VARCHAR2 datatype and is in the same character set as char1.

    The argument n is the total length of the return value as it is displayed on your terminal screen. In most character sets, this is also the number of characters in the return value. However, in some multibyte character sets, the display length of a character string can differ from the number of characters in the string.

    Syntax
    image


    PL/SQL Example
    Display the number padded right with zeros to a length of 10:

    RPAD ('55', 10, '0') ==> '5500000000'
    You could also use TO_CHAR to convert from a number to a character:

    TO_CHAR (55 * 10000000) ==> '5500000000'
    Display the number padded right with zeros to a length of 5:

    RPAD ('12345678', 5) ==> '12345'
    RPAD interprets its padded_length as the maximum length of the string that it may return. As a result, it counts padded_length number of characters from the left (start of the string) and then simply returns that substring of the incoming value. This is the same behavior as that found with LPAD. Remember: RPAD does not return the rightmost five characters (in the above case "45678").

    Place the phrase "sell!" after the names of selected stocks, up to a string length of 45:

    RPAD ('HITOP TIES', 45, 'sell!')
    ==>
    '  HITOP TIESsell!sell!sell!sell!sell!sell!sell!'
    Since the length of "HITOP TIES" is 10 and the length of "sell!" is 5, there is room for seven repetitions of the pad string. RPAD does, in fact, generate a repetition of the pattern specified in the pad string.

    Place the phrase "sell!" after the names of selected stocks, up to a string length of 43:

    RPAD ('HITOP TIES', 43, 'sell!')
    ==>
       'HITOP TIESsell!sell!sell!sell!sell!sell!sel'
    Because the length of "HITOP TIES" is 10 and the length of "sell!" is 5, there is no longer room for seven full repetitions of the pad string. As a result, the seventh repetition of "sell!" lost its last two characters.

    Create a string of 60 dashes to use as a border in a report:

    RPAD ('-', 60, '-')
    ==>
    '------------------------------------------------------------'
    SQL Example
    The following example rights-pads a name with the letters "ab" until it is 12 characters long:

    SELECT RPAD('MORRISON',12,'ab') "RPAD example"
         FROM DUAL;
    RPAD example
    -----------------
    MORRISONabab

    posted on 2009-03-11 09:53 JavaBegger 閱讀(173) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 啦啦啦在线免费视频| 97在线观免费视频观看| 日日摸夜夜添夜夜免费视频| 黄色免费网址在线观看| a级特黄毛片免费观看| 免费A级毛片av无码| 午夜影视在线免费观看| 中文字幕亚洲一区| 亚洲经典在线中文字幕| 在线观看亚洲AV日韩A∨| 一级毛片**免费看试看20分钟| 99久久久国产精品免费蜜臀| 久久丫精品国产亚洲av不卡| 久久精品国产亚洲av品善 | 亚洲中文字幕无码av永久| 成人福利免费视频| 亚洲深深色噜噜狠狠爱网站| 一本天堂ⅴ无码亚洲道久久| 在线A级毛片无码免费真人 | 亚洲1234区乱码| 人妻无码中文字幕免费视频蜜桃| 久久99国产综合精品免费| 亚洲欧洲中文日韩av乱码| 亚洲综合无码无在线观看| 日本牲交大片免费观看| 亚洲不卡中文字幕| 又粗又硬又大又爽免费视频播放| 久久亚洲精品无码VA大香大香| a级男女仿爱免费视频| 亚洲白色白色永久观看| 永久免费看bbb| 中文字幕在线免费看| 亚洲AV成人精品日韩一区18p| 亚洲av乱码一区二区三区香蕉 | 最好免费观看高清在线| 亚洲国产精品国产自在在线| 亚洲国产欧洲综合997久久| 免费在线看v网址| 亚洲jjzzjjzz在线观看| 亚洲国产精品成人| 四虎在线最新永久免费|