Dit maakt deel uit van de Oracle SQL-zelfstudie en heeft goede voorbeelden, uitleg over enkele rijfuncties in Oracle Sql
Functies zijn programma's die nul of meer argumenten aannemen en een enkele waarde retourneren.
Functies kunnen enkele rij, meerdere rijfuncties zijn
We zullen hier enkele rij-functies in SQL bespreken
Wat zijn enkele rij-functies in Oracle SQL
Functies met één rij zijn ingebouwde functies en omvatten karakter-, numerieke, datum-, conversie- en door de gebruiker gedefinieerde functies.
Alle enkele rijfuncties kunnen worden gebruikt in SQL- of PL/SQL-programma's en kunnen worden gebruikt in de SELECT-, WHERE- en ORDER BY-clausules.
Functies met één rij omvatten TO_CHAR, TO_DATE, UPPER, LOWER enz.
Functies met één rij kunnen ook worden gebruikt in de SET-clausule van en de opdracht UPDATE. Functies met één rij kunnen niet worden gebruikt in een HAVING-component.
Laten we eens kijken naar de verschillende belangrijke enkele rijfuncties
Tekenfuncties in SQL
De karakterfuncties zijn:
LOWER(‘char’) :convert string to kleine letters
SQL> select ename from "EMP"; ENAME ---------- Blake Clark Scott SQL> select lower(ename) from "EMP"; LOWER(ENAM ---------- blake clark scott
UPPER(‘CHAR’) :tekenreeks converteren naar hoofdletters
SQL> select upper(ename) from "EMP"; UPPER(ENAM ---------- BLAKE CLARK SCOTT
INITCAP(‘Char’) :retourneer een string met de eerste letter van elk woord in hoofdletters
SQL> select initcap(ename) from "EMP"; INITCAP(EN ---------- Blake Clark Scott
CONCAT – Functie heeft een limiet van twee parameters.
SQL> select concat(ename,DEPTNO) from emp; CONCAT(ENAME,DEPTNO) -------------------------------------------------- Blake10 Clark10 Scott20 SQL> select concat(ename,empno,DEPTNO) from emp; select concat(ename,empno,DEPTNO) from emp * ERROR at line 1: ORA-00909: invalid number of arguments
LENGTH:geef de lengte van de string terug
SQL> select ename,length(ename) from emp; ENAME LENGTH(ENAME) ---------- ------------- Blake 5 Clark 5 Scott 5
LENKTHB:retourneert de lengte van een string in bytes
SQL> select ename,length(ename),lengthb(ename) from emp; ENAME LENGTH(ENAME) LENGTHB(ENAME) ---------- ------------- -------------- Blake 5 5 Clark 5 5 Scott 5 5
INSTR :retourneert de index van de gezochte string binnen een string,
SQL> select ename,instr(ename,'A') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 0 Clark 0 Scott 0 SQL> select ename,instr(ename,'a') from emp; ENAME INSTR(ENAME,'A') ---------- ---------------- Blake 3 Clark 3 Scott 0
LPAD:linker pad een string met n karakters
SQL> select ename,lpad(ename,12) from emp; ENAME LPAD(ENAME,12) ---------- ------------------------------------ Blake Blake Clark Clark Scott Scott SQL> select ename,lpad(ename,12,'-') from emp; ENAME LPAD(ENAME,12,'-') ---------- ------------------------------------ Blake -------Blake Clark -------Clark Scott -------Scott
LTRIM:voorlooptekens uit een string verwijderen
SQL> select ltrim(' name') from dual; LTRI ---- name SQL> select ltrim(' name ') from dual; LTRIM(' ------- name SQL> select LTRIM('000123', '0') from dual; LTR --- 123 SQL> select LTRIM('1000123', '0') from dual; LTRIM(' ------- 1000123
VERVANGEN:zoek op substrings en vervang
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes -------------- BLACK and BLUE
SUBSTR – retourneer een sectie van een string gespecificeerd in numerieke waarden
SUBSTRB – hetzelfde als SUBSTR alleen met bytes
SOUNDEX – retourneer een fonetische representatie van een string
TRANSLATE – voer het zoeken naar tekens uit en vervang
TRIM – tekenreeks voorloop- en volgtekens van tekenreeks
Examples select emp_name, concat(emp_name,dept_name), length (ename),INSTR(ename, 'A') from dept; select lower(emp_name) from employee; select upper(first_name) from emp;
Zoals uitgelegd, werkt de enkele rij-functie op elke rij
Gerelateerd:Oracle SQL-decoderingsverwerking
Numerieke functies in Sql
De cijferfuncties zijn:
ROUND :rondt een getal af
SQL> select round(3.456) from dual; ROUND(3.456) ------------ 3 SQL> select round(3.456,2) from dual; ROUND(3.456,2) -------------- 3.46
TRUNC:kapt een getal af
MOD:geeft de modulus.i.e. de rest terug
SQL> select mod(4,2) from dual; MOD(4,2) ---------- 0 SQL> select mod(4,3) from dual; MOD(4,3) ---------- 1
SIGN:retour positief, negatief of nul
CEIL – retourneert het eerstvolgende hogere getal
SQL> select ceil(3.1) from dual; CEIL(3.1) ---------- 4 SQL> select ceil(3) from dual; CEIL(3) ---------- 3
LOG – geef de logaritme terug
FLOOR – geef het volgende kleinere getal terug
SQL> select floor(3.1) from dual; FLOOR(3.1) ---------- 3 SQL> select floor(3) from dual; FLOOR(3) ---------- 3
SQRT – retourneer de vierkantswortel van een getal
Examples SELECT SQRT(25) "Square root" FROM DUAL; SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;
Oracle-datumfuncties
De Oracle-datumfuncties zijn:
SYSDATE :retour huidige datum
DUAL
MONTHS_BETWEEN (Returns a number) :return aantal maanden tussen twee datums
ADD_MONTHS:voeg een aantal maanden toe aan date
NEXT_DAY :retourneert de volgende dag van de week na een bepaalde datum
LAST_DAY :retour laatste dag van de maand
DBTIMEZONE – retourneert de tijdzone van de database
TRUNC:kapt een datum af.
CURRENT_TIMESTAMP – geeft de datum en tijd terug in TIMESTAMP-formaat
Examples SQL> select CURRENT_TIMESTAMP from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 01-SEP-19 04.33.26.493097 PM +00:00 SQL> select sysdate from dual; SYSDATE --------------- 01-SEP-19
Expliciet type conversiefuncties
TO_CHAR -converteert getal of datum naar VARCHAR2
TO_NUMBER:converteert teken naar getal
TO_DATE:converteert naar datum
Examples SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2 ; TO_CHAR(SYSDATE,'DD- -------------------- 01-SEP-2019,34
Andere functies
NVL (expr1, expr2) en NVL3
NVL – heeft twee argumenten:NVL(x1, x2), Retourneert x2 wanneer x1 NULL is of x1 wanneer x1 niet NULL is. NVL2 – heeft drie argumenten:NVL2(x1, x2, x3), retourneert x3 wanneer x1 NULL is of x2 wanneer x1 niet NULL is
DECODE Deze functie werkt als een IF-THEN-ELSE- of CASE-instructie.
COALESCE – retourneer de eerste niet-NULL-waarde in een lijst
SYS_CONTEXT – retourneer systeemkenmerken
UID – retourneer numerieke gebruikers-ID voor huidige sessie
Kleine quiz om de kennis te testen over functies met één rij in SQL
Vraag 1 :U gebruikt functies met één rij in een select-statement. Welke functie kan het beste worden gecategoriseerd als vergelijkbaar in functie met een if-then-else-statement?
A) sqrt( )
B) decoderen( )
C) rowidtochar( )
D) new_time( )
Uitleg:
De functie decode() werkt als een if-then-else-clausule in uw SQL-instructies. Keuze sqrt( ) is onjuist omdat sqrt( ) de
vierkantswortel van een getal oplevert. Keuze new_time( ) is onjuist omdat de functie new_time( ) een nieuwe tijd retourneert op basis van waarden die zijn opgegeven in de aanroep van die functie.
Ten slotte is de keuze rowidtochar() onjuist omdat rowidtochar() een functie is die ROWID-informatie omzet in CHAR-informatie.
Vraag 2:
U wilt functies met één rij gebruiken in uw SQL-instructies. Welke drie van de volgende zijn getalfuncties? (Kies drie van de vier.)
A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Uitleg:
De enige niet-getalfunctie in deze list is de to_number( ) functie,
wat een conversie bewerking is.
Vraag 3 De volgende SQL-instructie is afkomstig uit een SQL*Plus-sessie:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr(ENAME,1,1)> to_number ('V') en EMPNO> 1000
bestellen per EMPNO desc, ENAME asc;
Welke van de volgende regels in de select-instructie die in het
vorige codeblok wordt getoond, bevat een fout?
A) selecteer decoderen (EMPNO, 58385, 'INACTIEF', 'ACTIVE') empno
B) van EMP
C) en EMPNO> 02000
D) waarbij substr(ENAME,1,1 )> to_number('S')
E) bestellen door EMPNO desc, ENAME asc;
Uitleg:(D)
Tekens die alfabetisch zijn, zoals S, kunnen niet worden omgezet in cijfers. Wanneer deze instructie wordt uitgevoerd, produceert deze een fout op deze regel. De
andere regels in deze zoekopdracht zijn correct zoals samengesteld.
Vraag 4 Welk SELECT-statement krijgt het resultaat 'elloworld' van de string 'HelloWorld'?
A. SELECTEER SUBSTR(‘HelloWorld’,1) VAN dual;
B. SELECTEER INITCAP(TRIM (‘HelloWorld’, 1,1)) UIT dual;
C. SELECTEER LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM (' H' VAN 'HelloWorld')) VAN dual;
Antwoord:E
Ik hoop dat je dit bericht leuk vindt over functies met één rij in SQL. Geef alsjeblieft de feedback
Gerelateerde artikelen
Analytische functies in Oracle:Oracle Analytische functies berekenen een geaggregeerde waarde op basis van een groep rijen door gebruik te maken van over partitie door Oracle-clausule, ze verschillen van geaggregeerde functies
rang in Oracle:RANK, DENSE_RANK en ROW_NUMBER zijn orakel-analytisch functie die wordt gebruikt om rijen te rangschikken in de groep rijen genaamd window
Lead-functie in oracle:bekijk de LAG-functie in Oracle &Lead-functie in Oracle, hoe ze te gebruiken in analytische query's en hoe het werkt in Oracle sql
Top-N-query's in Oracle :Bekijk deze pagina over het verkennen van de verschillende manieren om Top-N-query's in Oracle en paginering in Oracle-query Oracle-database te bereiken.