Това е част от урока за Oracle SQL и има добри примери, обяснение за функциите на един ред в Oracle Sql
Функциите са програми, които приемат нула или повече аргументи и връщат една стойност.
Функциите могат да бъдат едноредови, многоредови функции
Тук ще обсъдим едноредови функции в SQL
Какво представлява едноредовите функции в Oracle SQL
Функциите с един ред са вградени функции и включват функции за знаци, цифри, дата, преобразуване и дефинирани от потребителя.
Всички едноредови функции могат да се използват в SQL или PL/SQL програми и могат да се използват в клаузите SELECT, WHERE и ORDER BY.
Едноредовите функции включват TO_CHAR, TO_DATE, UPPER, LOWER и т.н.
Едноредовите функции могат да се използват и в клаузата SET на командата UPDATE. Едноредовите функции не могат да се използват в клауза HAVING.
Нека разгледаме различните важни едноредови функции
Символни функции в SQL
Функциите на символите са:
LOWER(‘char’) :конвертиране на низ в малки букви
SQL> изберете ename от "EMP";ENAME----------BlakeClarkScottSQL> изберете по-ниско(ename) от "EMP";LOWER(ENAM----------blakeclarkscottпредварително>UPPER(‘CHAR’) :преобразуване на низ в главни букви
SQL> изберете upper(ename) от "EMP"; UPPER(ENAM----------BLAKECLARKSCOTTINITCAP(‘Char’) :връща низ с първата буква на всяка дума с главни букви
SQL> изберете initcap(ename) от "EMP";INITCAP(EN----------BlakeClarkScottCONCAT – Функцията има ограничение от два параметъра.
SQL> изберете concat(ename,DEPTNO) от emp;CONCAT(ENAME,DEPTNO)---------------------------- ---------------------Blake10Clark10Scott20SQL> изберете concat(ename,empno,DEPTNO) от emp; изберете concat(ename,empno,DEPTNO) от emp *ERROR на ред 1:ORA-00909:невалиден брой аргументиLENGTH:връща дължината на низа
SQL> изберете ename,length(ename) от emp;ENAME LENGTH(ENAME)---------- -------------Blake 5Clark 5Scott 5LENGTHB:връща дължината на низ в байтове
SQL> изберете ename,length(ename),lengthb(ename) от emp;ENAME LENGTH(ENAME) LENGTHB(ENAME)---------- ----------- -- -------------- Блейк 5 5 Кларк 5 5 Скот 5 5INSTR :връща индекса на търсения низ в низ,
SQL> изберете ename,instr(ename,'A') от emp;ENAME INSTR(ENAME,'A')---------- ------------ ----Blake 0Clark 0Scott 0SQL> изберете ename,instr(ename,'a') от emp;ENAME INSTR(ENAME,'A')---------- --------- --------Блейк 3Кларк 3Скот 0LPAD:ляв подложка на низ с n знака
SQL> изберете ename,lpad(ename,12) от emp;ENAME LPAD(ENAME,12)---------- ---------------- --------------------Blake BlakeClark ClarkScott ScottSQL> изберете ename,lpad(ename,12,'-') от emp;ENAME LPAD(ENAME,12,'- ')--------------- ------------------------------------Блейк - ------БлейкКларк -------КларкСкот -------СкотLTRIM:премахване на водещите знаци от низ
SQL> изберете ltrim('name') от dual;LTRI----nameSQL> изберете ltrim('name') от dual;LTRIM('-------nameSQL> изберете LTRIM('000123') , '0') от dual;LTR---123SQL> изберете LTRIM('1000123', '0') от dual;LTRIM('-------1000123ЗАМЕНИ:извършете търсене на подниз и замяна
SELECT REPLACE('JACK and JUE','J','BL') "Промени" ОТ DUAL;Промени--------------ЧЕРНО и СИНЬОSUBSTR – връщане на секция от низ, определен в числови стойности
SUBSTRB – същото като SUBSTR само с байтове
SOUNDEX – връщане на фонетично представяне на низ
TRANSLATE – извършване на търсене на знаци и замяна
TRIM – низ начални и крайни символи на низПримери изберете emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') от dept;изберете low(emp_name) от служител;изберете upper(first_name) от emp;Както беше обяснено, функцията за единичен ред работи на всеки ред
Свързано: Обработка на декодиране на Oracle sql
Числови функции в Sql
Числовите функции са:
ROUND :закръгля числоSQL> изберете кръг(3.456) от двойно;ROUND(3.456)----------- 3SQL> изберете кръг(3.456,2) от двойно;ROUND(3.456,2)--- ----------- 3,46TRUNC :съкращава число
MOD:връща модула, т.е. остатъкаSQL> изберете mod(4,2) от dual; MOD(4,2)--------- 0SQL> изберете mod(4,3) от двойно; MOD(4,3)--------- 1ЗНАК:връща положително, отрицателно или нула
CEIL – връща следващото по-голямо числоSQL> изберете ceil(3.1) от dual; CEIL(3.1)---------- 4SQL> изберете ceil(3) от двойно; CEIL(3)--------- 3LOG – връщане на логаритъма
ЕТАЖ – връщане на следващото по-малко числоSQL> изберете етаж(3.1) от двойно; FLOOR(3.1)---------- 3SQL> изберете етаж(3) от двойно; ЕТАЖ(3)--------- 3SQRT – връща корен квадратен от число
Примери SELECT SQRT(25) "Квадратен корен" ОТ DUAL; SELECT order_total, CEIL(order_total) FROM поръчки WHERE order_id =58758;Функции за дата на Oracle
Функциите за дата на Oracle са:
SYSDATE :връщане на текущата дата
DUAL
MONTHS_BETWEEN (Връща число) :връщане на броя на месеца между две дати
ADD_MONTHS :добавяне на брой месеци към дата
NEXT_DAY :връща следващия ден от седмицата след дадена дата
LAST_DAY :връща последния ден от месеца
DBTIMEZONE – върне часовата зона на базата данни
TRUNC:съкращава дата.
CURRENT_TIMESTAMP – връща датата и часа във формат TIMESTAMPПримери SQL> изберете CURRENT_TIMESTAMP от двойно;CURRENT_TIMESTAMP----------------------------------------- ---------------------------------01-SEP-19 04.33.26.493097 PM +00:00SQL> изберете системна дата от двойна;SYSDATE--------------01-SEP-19Функции за преобразуване на изричен тип
TO_CHAR -преобразува числото или датата във VARCHAR2
TO_NUMBER :Преобразува знака в число
TO_DATE:Преобразува в датаПримери SQL> изберете to_char(sysdate ,'DD-MON-YYYY,MI') от двойни 2;TO_CHAR(SYSDATE,'DD---------------------01- СЕП-2019, 34Други функции
NVL (expr1, expr2) и NVL3
NVL – приема два аргумента:NVL(x1, x2), връща x2, когато x1 е NULL или x1, когато x1 не е NULL. NVL2 – приема три аргумента:NVL2(x1, x2, x3), връща x3, когато x1 е NULL или x2, когато x1 не е NULLDECODE Тази функция работи като израз IF-THEN-ELSE или CASE.
COALESCE – връщане на първата стойност, различна от NULL в списъка
SYS_CONTEXT – връщане на системни атрибути
UID – връщане на цифров идентификатор на потребителя за текущата сесияМалък тест за тестване на знанията относно функции на един ред в SQL
Въпрос 1 :Използвате едноредови функции в оператор за избор. Коя функция най-добре може да бъде категоризирана като подобна по функция на оператор if-then-else?
A) sqrt( )
B) decode( )
C) rowidtochar( )
D) new_time( )Обяснение:
Функцията decode() действа като клауза if-then-else във вашите SQL изрази. Изборът sqrt( ) е неправилен, защото sqrt() произвежда
корен квадратен от число. Изборът new_time() е неправилен, защото функцията new_time() връща ново време въз основа на стойности, посочени в извикването на тази функция.И накрая, изборът rowidtochar() е неправилен, защото rowidtochar() е функция, която преобразува ROWID информацията в информация CHAR.
Въпрос 2:
Искате да използвате едноредови функции във вашите SQL изрази. Кои три от следните са числови функции? (Изберете три от четирите.)
A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Обяснение:
Единствената нечислова функция в това list е функцията to_number(),
която е операция за преобразуване.Въпрос 3 Следният SQL оператор е взет от сесия на SQL*Plus:
изберете декодиране(EMPNO, 74765, 'НЕАКТИВНО', 'АКТИВНО') empno от DEPT
където substr(ENAME,1,1)> to_number ('V') и EMPNO> 1000
подреждане по EMPNO desc, ENAME asc;Кой от следните редове в оператора select, показан в
предишния кодов блок, съдържа грешка?A) изберете декодиране (EMPNO, 58385, 'НЕАКТИВНО', 'АКТИВНО') empno
B) от EMP
C) и EMPNO> 02000
D) където substr(ENAME,1,1 )> to_number('S')
E) подреждане по EMPNO desc, ENAME asc;Обяснение:(D)
Знаци, които са азбучни, като S, не могат да бъдат преобразувани в числа. Когато този израз се изпълнява, той ще произведе грешка на този ред.
Другите редове в тази заявка са правилни, както са съставени.
Въпрос 4 Кой оператор SELECT ще получи резултата „elloworld“ от низа „HelloWorld“?
A. ИЗБЕРЕТЕ SUBSTR( ‘HelloWorld’,1) ОТ двойно;
B. ИЗБЕРЕТЕ INITCAP(TRIM (‘HelloWorld’, 1,1)) ОТ двойно;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) ОТ двойно;
D. SELECT LOWER('HelloWorld', 2, 1) ОТ двойно;
E. SELECT LOWER(TRIM (' H' ОТ 'HelloWorld')) ОТ двоен;
Отговор:EНадяваме се да ви хареса тази публикация за едноредови функции в SQL. Моля, предоставете обратната връзка
Сродни статии
Аналитични функции в oracle :Oracle Analytic функции изчисляват обобщена стойност въз основа на група от редове чрез използване на over partition by oracle клауза, те се различават от агрегатните функции
rank в oracle:RANK, DENSE_RANK и ROW_NUMBER са аналитични за оракул функция, която се използва за класиране на редове в групата от редове, наречена window
Lead функция в oracle :Вижте LAG функция в Oracle &Lead функция в Oracle, как да ги използвате в аналитични заявки и как работи в Oracle sql
Top-N заявки в Oracle :Разгледайте тази страница за проучване на различните начини за постигане на Top-N заявки в Oracle и разделяне на страници в oracle query oracle база данни.