Автор работы: Пользователь скрыл имя, 27 Октября 2013 в 20:04, доклад
Цифровые функции обеспечивают точность вычислений – 38 десятичных знаков (36 для трансцендентных функций).
1. ABS(n)
Например: SELECT ABS(-15) "Absolute" FROM DUAL
Результат: Absolute
----------
15
2. CEIL(n) – наименьшее целое, большее или равное n
Например: SELECT CEIL(15.7) "Ceiling" FROM DUAL
Результат: Ceiling
-------------
16
3. COS (x) x- в радианах
Например: SELECT COS( 3.14159265359) "Cos of 180 degrees” FROM DUAL
Результат: Cos of 180 degrees
------------------------------
-1
4. COSH (x)
Например: SELECT COSH(0) "Hyperbolic cosine of 0" FROM DUAL
Результат: Hyperbolic cosine of 0
------------------------------
1
5. EXP (X)
Например: SELECT EXP(4) "e to the 4th power" FROM DUAL
Результат: e to the 4th power
---------------------------
54.59815
6. FLOOR (n)- наименьшее целое, меньшее или равное n
Например: SELECT FLOOR(15.7) "Floor" FROM DUAL
Результат: Floor
----------
15
7. LN (x)
Например: SELECT LN(95) "Natural log of 95" FROM DUAL
Результат: Natural log of 95
------------------------
4.55387689
8. LOG (m,n) – логарифм по основанию m от n
Например: SELECT LOG(10,100) "Log base 10 of 100" FROM DUAL
Результат: Log base 10 of 100
---------------------------
2
9. MOD (m,n) – остаток от деления m на n
Например: SELECT m,n,MOD(m,n), m-n*FLOOR(m/n) "Classical Modulus"FROM test_table
Результат: M N MOD (M,N) Classical Modulus
---- ---- ----------------- --
11 4 3
-11 4 -3 1
11 -4 -3 -1
-11 -4 3 -3
10. POWER(m, n) – m в степени n
Например: SELECT POWER(3,2) "Raised" FROM DUAL
Результат: Raised
-------------------
9
11. ROUND(n[,m]) - округление
Например: SELECT ROUND(15.193,1) "Round 1" ROUND(15.193,-1) "Round -1"
FROM DUAL
Результат: Round
1
--------------------
15.2 20
12. SIGN (n) – знак n
Например: SELECT SIGN(-15) "Sign" FROM DUAL
Результат: Sign
--------------------
-1
13. SIN(n)
Например: SELECT SIN(30 * 3.14159265359/180) "Sin of 30 degrees FROM DUAL
Результат: Sine of 30 degrees
--------------------------
.5
14. SINH(n)
Например: SELECT SINH(1) "Hyperbolic sine of 1" FROM DUAL
Результат: Hyperbolic sine of 1
----------------------------
1.17520119
15. SQRT (n)
Например: SELECT SQRT(26) "Square root" FROM DUAL
Результат: Square root
-----------------
5.09901951
16. TAN (n)
Например: SELECT TAN(135 * 3.14159265359/180) "Tangent of 135 degrees" FROM DUAL
Результат: Tangent of 135 degrees
------------------------------
-1
17. TANH(n)
Например: SELECT TANH(.5) "Hyperbolic tangent of .5" FROM DUAL
Результат: Hyperbolic tangent of .5
------------------------------
.462117157
18. TRUNC(n[,m]) –усечение
Например: SELECT TRUNC(15.79,1) "Truncate" FROM DUAL
Результат: Truncate
-------------
15.7
Символьные функции – возвращают тип VARCHAR2, ограниченный 2000 байтами или CHAR(255 байт). Для конкатенации строк используется ||
1. CHR(n)
Например: SELECT CHR(67)||CHR(65)||CHR(84) "Dog" FROM DUAL
Результат: Dog
------
CAT
2. CONCAT (char1, char2) – конкатенация, эквивалент операции ||
Например: SELECT CONCAT( CONCAT(ename, ' is a '), job) "Job" FROM emp
WHERE empno = 7900
Результат: Job
-------------------------
JAMES is a CLERK
3. INITCAP(char) – первый символ каждого слова делает прописной буквой, а остальные строчными
Например: SELECT INITCAP('the soap') "Capitals" FROM DUAL
Результат: Capitals
--------
The Soap
4. LOWER (char) – заменяет все буквы на строчные
Например: SELECT LOWER('MR. SAMUEL') "Lowercase" FROM DUAL
Результат: Lowercase
--------------------
mr. samuel
5. LPAD (char1,n [,char2]) – дополняет строку char1 слева пробелами или последовательностью символов char2 до длины n.
Например: SELECT LPAD('Page 1',15,'*.') "LPAD пример:"
FROM DUAL
Результат: LPAD пример:
---------------
*.*.*.*.*Page 1
6. LTRIM (char1 [,char2]) – удаляет из строки ведущие пробелы или символы, заданные в char2.
Например: SELECT LTRIM(' LAST WORD') "LTRIM пример:" FROM DUAL
Результат: LTRIM пример:
----------------------
LAST WORD – удалены все пробелы слева
7. NLS_INITCAP – аналогично INITCAP, но может учитывать лингвистические особенности для разных языков.
Например: SELECT NLS_INITCAP('ijsland', 'NLS_SORT = XDutch') "Capital" FROM DUAL
Результат: Capital
-----------
IJsland
8. NLS_LOWER (char [, 'nlsparams'] ) – то же, что LOWER, но с учетом национальных лингвистических особенностей
Например: SELECT NLS_LOWER('CITTA''', 'NLS_SORT = XGerman') "Lower” FROM DUAL
Результат: Lower
-----
cittа
9. NLS_UPPER (char [, 'nlsparams'] )- то же, что UPPER, но с учетом национальных лингвистических особенностей
Например: SELECT NLS_UPPER('gro?e', 'NLS_SORT = Xgerman') "Upper" FROM DUAL
Результат: Upper
-----
GROSS
10. REPLACE (char, search_string[,replacement_
Например: SELECT REPLACE('JACK and JUE','J','BL') "Changes” FROM DUAL
Результат: Changes
--------------
BLACK and BLUE
11. RPAD (char1, n [,char2]) – дополнение строки char1 пробелами или заданными в char2 символами справа до длины n.
Например: SELECT RPAD(ename,12,'ab') "RPAD пример:" FROM emp
WHERE ename = 'TURNER'
Результат : RPAD пример:
------------
TURNERababab
12. RTRIM (char [,set]) – удаляет из строки завершающие пробелы или
Например: SELECT RTRIM('TURNERyxXxy','xy') "RTRIM пример" FROM DUAL
Результат: RTRIM пример
---------
TURNERyxX
13. SOUNDEX(char) – заменяет символы в строке в соответствии с фонетикой английского языка
Например: SELECT ename FROM emp
WHERE SOUNDEX(ename) = SOUNDEX('SMYTHE')
Результат : ENAME
----------
SMITH
14. SUBSTR (char, m [,n]) – выделение фрагмента строки char длиной n, начиная с позиции m. Если n опущено, то выделяются символы до конца строки, начиная с позиции m.
Например: SELECT SUBSTR('ABCDEFG',3,4) "Subs" FROM DUAL
Результат: Subs
----
CDEF
Тот же результат можно получить с помощью запроса:
SELECT SUBSTR('ABCDEFG',-5,4) "Subs" FROM DUAL
15. TRANSLATE (char, from, to) – преобразует каждый символ строки char в соответствии с функцией преобразования, заданной при помощи строк from и to.
Например: SELECT TRANSLATE('2KRW229',
'
'
FROM DUAL
Результат: Licence
--------------------------
9XXX999
16. UPPER(char) – преобразует все буквы в заглавные
Например: SELECT UPPER('Large') "Uppercase" FROM DUAL
Результат: Uppercase
-----------------
LARGE
1. ASCII(char) – код первого символа строки char
Например: SELECT ASCII('Q') FROM DUAL
Результат: ASCII('Q')
--------------
81
2. INSTR (char1,char2[,n[,m]]) – позиция n-ного символа в m-ном вхождении фрагмента char2 в строку char1.Если n и m опущено, то они принимаются равными 1. Если фрагмент не входит в строку, то функция равна 0.
Например:s SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) "Instring" FROM DUAL
Результат : Instring
----------
14
3. LENGTH(char) – длина строки
Функции для работы с датами
1. ADD_MONTHS (d,n) – прибавляет к дате d n месяцев.
Например: SELECT
TO_CHAR(ADD_MONTHS(hiredate,1)
FROM emp
WHERE ename = 'SMITH'
Результат : Next Month
-----------------
17-JAN-1981
2. LAST_DAY (d) – дата последнего дня месяца d
Например: SELECT SYSDATE, LAST_DAY(SYSDATE) "Last",
LAST_DAY(SYSDATE) - SYSDATE "Days Left" FROM DUAL
Результат: SYSDATE Last Days Left
------------ ------------ ----
10-APR-95 30-APR-95 20
3. MONTHS_BETWEEN (d1, d2) – число месяцев между датами d1 и d2
Например: SELECT
MONTHS_BETWEEN(TO_DATE('02-02-
TO_DATE('01-01-1995','MM-DD-
Результат: Months
----------------
1.03225806
4. NEW_TIME(d, z1, z2) – дата и время d, соответствующие временному поясу z1, преобразуются к временному поясу z2. Обозначения временных поясов:
AST/ADT Atlantic Standard or Daylight Time
BST/BDT Bering Standard or Daylight Time
CST/CDT Central Standard or Daylight Time
EST/EDT Eastern Standard or Daylight Time
GMT Greenwich Mean Time
HST/HDT Alaska-Hawaii Standard Time or Daylight Time.
MST/MDT Mountain Standard or Daylight Time
NST Newfoundland Standard Time
PST/PDT Pacific Standard or Daylight Time
YST/YDT Yukon Standard or Daylight Time
NEXT_DAY
5. NEXT_DAY(d, char) – дата первого дня недели char, следующего за датой d.
Например: SELECT
NEXT_DAY('15-MAR-92','TUESDAY'
FROM DUAL
Результат: NEXT DAY
---------
17-MAR-92 – первый вторник после 15 марта
6. ROUND (d[,fmt]) – округление даты в соответствии с заданным форматом fmt
Например: SELECT
ROUND(TO_DATE('27-OCT-92'),'
"FIRST OF THE YEAR" FROM DUAL
Результат : FIRST OF THE YEAR
-----------------
01-JAN-93
7. SYSDATE – текущая дата
Например: SELECT TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS') “NOW”
FROM DUAL
Результат : NOW
-------------------
10-29-1993 20:27:11.
8. TRUNC(d,[fmt]) – усечение даты
Например: SELECT TRUNC(TO_DATE('27-OCT-92', 'DD-MON-YY'), 'YEAR')
"First Of The Year" FROM DUAL
Результат : FIRST OF THE YEAR
-----------------
01-JAN-92
Ниже приводятся форматы для округления или усечения даты
Format Model Rounding or Truncating Unit
CC, SCC Century
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y Year (rounds up on July 1)
IYYY, IY, IY, I ISO Year
Q Quarter (rounds up on the sixteenth day of the second month of the quarter)
MONTH, MON, MM, RM Month (rounds up on the sixteenth day)
WW Same day of the week as the first day of the year.
IW Same day of the week as the first day of the ISO year.
W Same day of the week as the first day of the month.
DDD, DD, J Day
DAY, DY, D Starting day of the week
HH, HH12, HH24 Hour
MI Minute
Функции преобразования типов
1. TO_CHAR(d [, fmt [, 'nlsparams'] ]) – преобразование даты или числа d в VARCHAR2
Например: SELECT TO_CHAR(HIREDATE, 'Month DD, YYYY') "New date format"
FROM emp WHERE ename = 'SMITH'
New date format
------------------------------
December 17, 1980
Например: SELECT TO_CHAR(-10000,'L99G999D99MI') "Amount" FROM DUAL
Результат: Amount
--------------------
$10,000.00-
2. TO_DATE (char [, fmt [, 'nlsparams'] ]) – преобразование строки в дату
Например: INSERT INTO bonus (bonus_date)
SELECT TO_DATE('January 15, 1989, 11:00 A.M.','Month dd, YYYY, HH:MI A.M.',
'NLS_DATE_LANGUAGE = American') FROM DUAL
3. TO_NUMBER (char [,fmt [, 'nlsparams'] ])- преобразование строки в числовой тип
Например: UPDATE emp
SET sal = sal + TO_NUMBER('100.00', '9G999D99')
WHERE ename = 'BLAKE'
Другие функции
1. GREATEST (expr [,expr] ...) – наибольшее из списка
Например: SELECT
GREATEST('HARRY','HARRIOT','
FROM DUAL
Результат: GREATEST
--------------
HARRY
2. LEAST (expr [,expr] ...) – наименьшее из списка
Например: SELECT
LEAST('HARRY','HARRIOT','
FROM DUAL
Результат: LEAST
----------
HAROLD
3. NVL(expr1, expr2)- возвращает expr1, если оно не пустое, и expr2, если пустое
Например: SELECT ename, NVL(TO_CHAR(COMM),'NOT APPLICABLE') "COMMISSION"
FROM emp WHERE deptno = 30
Результат: ENAME COMMISSION
----------- -----------
ALLEN 300
WARD 500
MARTIN 1400
BLAKE NOT APPLICABLE
4. UID – возвращает идентификационный номер текущего пользователя
Например: SELECT USER, UID FROM DUAL
USER UID
---------------------------- -
OPS$BQUIGLEY 46
5. USERENV (option) – данные о текущей сессии
Group Functions
Group functions return results based on groups of rows, rather than on single rows. In this way, group functions are different from single row functions. For a discussion of the differences between group functions and single-row functions, see the section "Functions".
Many group functions accept these options:
DISTINCT This option causes a group function to consider only distinct values of the argument expression.
ALL This option causes a group function to consider all values including all duplicates.
For Например:, the DISTINCT average of 1, 1, 1, and 3 is 2; the ALL average is 1.5. If neither option is specified, the default is ALL.
All group functions except COUNT(*) ignore nulls. You can use the NVL in the argument to a group function to substitute a value for a null.
If a query with a group function returns no rows or only rows with nulls for the argument to the group function, the group function returns null.
AVG
Syntax AVG([DISTINCT|ALL] n)
Purpose Returns average value of n.
Например: SELECT AVG(sal) "Average"
FROM emp
Average
-----------------
2077.21429
COUNT
Syntax COUNT({* | [DISTINCT|ALL] expr})
Purpose Returns the number of rows in the query.
If you specify expr, this function returns rows where expr is not null. You can count either all rows, or only distinct values of expr.
If you specify the asterisk (*), this function returns all rows, including duplicates and nulls.
Например:s SELECT COUNT(*) "Total"
FROM emp
Total
---------------
18
SELECT COUNT(job) "Count"
FROM emp
Count
----------
14
SELECT COUNT(DISTINCT job) "Jobs"
FROM emp
Jobs
----------
5
GLB
Syntax GLB([DISTINCT|ALL] label)
Purpose Returns the greatest lower bound of label. For the definitions of greatest lower bound and Например: usage, see Trusted Oracle7 Server Administrator's Guide.
LUB
Syntax LUB([DISTINCT|ALL] label)
Purpose Returns the least upper bound of label.
Информация о работе Встроенные функции языка SQL (диалект Oracle)