Oracle
 sql >> база данни >  >> RDS >> Oracle

Едноредови функции в Oracle sql

Това е част от урока за 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----------BLAKECLARKSCOTT

INITCAP(‘Char’) :връща низ с първата буква на всяка дума с главни букви

SQL> изберете initcap(ename) от "EMP";INITCAP(EN----------BlakeClarkScott

CONCAT – Функцията има ограничение от два параметъра.

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 5

LENGTHB:връща дължината на низ в байтове

SQL> изберете ename,length(ename),lengthb(ename) от emp;ENAME LENGTH(ENAME) LENGTHB(ENAME)---------- ----------- -- -------------- Блейк 5 5 Кларк 5 5 Скот 5 5

INSTR :връща индекса на търсения низ в низ,

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Скот 0

LPAD:ляв подложка на низ с 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,46

TRUNC :съкращава число
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)--------- 3

LOG – връщане на логаритъма
ЕТАЖ – връщане на следващото по-малко число

SQL> изберете етаж(3.1) от двойно; FLOOR(3.1)---------- 3SQL> изберете етаж(3) от двойно; ЕТАЖ(3)--------- 3

SQRT – връща корен квадратен от число

Примери 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 не е NULL

DECODE Тази функция работи като израз 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 база данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да сравним два обекта на база данни в Oracle?

  2. Как да премахнете нулата, когато цялата част е нула в Oracle

  3. Как да върнете Unix Timestamp в Oracle

  4. Как да показвате по-ясно данните от таблицата в oracle sqlplus

  5. Грешка при изключване на Oracle ORA-01033