Dette er en del af Oracle SQL tutorial og har gode eksempler, forklaring på enkelt række funktioner i Oracle Sql
Funktioner er programmer, der tager nul eller flere argumenter og returnerer en enkelt værdi.
Funktioner kan være enkelt række, flere række funktioner
Vi vil her diskutere Enkeltrækkes funktioner i SQL
Hvad er en række funktioner i Oracle SQL
Enkeltrækkesfunktioner er indbyggede funktioner og inkluderer tegn, tal, dato, konvertering og brugerdefinerede funktioner.
Alle enkeltrækkefunktioner kan bruges i SQL- eller PL/SQL-programmer og kan bruges i SELECT-, WHERE- og ORDER BY-sætningerne.
Enkeltrækkes funktioner inkluderer TO_CHAR, TO_DATE, UPPER, LOWER osv.
Enkeltrækkesfunktioner kan også bruges i SET-sætningen af og UPDATE-kommandoen. Enkeltrækkesfunktioner kan ikke bruges i en HAVING-sætning.
Lad os undersøge de forskellige vigtige enkeltrækkefunktioner
Tegnfunktioner i SQL
Tegnfunktionerne er:
LOWER('char') :konverter streng til små bogstaver
SQL> select ename from "EMP"; ENAME ---------- Blake Clark Scott SQL> select lower(ename) from "EMP"; LOWER(ENAM ---------- blake clark scott
UPPER('CHAR') :konverter streng til store bogstaver
SQL> select upper(ename) from "EMP"; UPPER(ENAM ---------- BLAKE CLARK SCOTT
INITCAP('Char'):returner en streng med det første bogstav i hvert ord med stort bogstav
SQL> select initcap(ename) from "EMP"; INITCAP(EN ---------- Blake Clark Scott
CONCAT – Funktionen har en grænse på to parametre.
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 :retur længden af strengen
SQL> select ename,length(ename) from emp; ENAME LENGTH(ENAME) ---------- ------------- Blake 5 Clark 5 Scott 5
LENGTHB:returnerer længden af en streng i 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 :returnerer indekset for den søgte streng i en streng,
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:venstre blok en streng med n tegn
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:fjern indledende tegn fra en streng
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
REPLACE:udfør en understrengssøgning og erstat
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes -------------- BLACK and BLUE
SUBSTR – returner en sektion af streng specificeret i numeriske værdier
SUBSTRB – samme som SUBSTR kun med bytes
SOUNDEX – returner en fonetisk repræsentation af en streng
OVERSÆT – udfør tegnsøgning og erstat
TRIM – ledende og efterfølgende tegn i streng
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;
Som forklaret fungerer enkeltrækkefunktionen på hver række
Relateret: Oracle sql-afkodningsbehandling
Numeriske funktioner i SQL
Talfunktionerne er:
RUD :runder et tal
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 :trunkerer et tal
MOD:returnerer modulet, dvs. resten
SQL> select mod(4,2) from dual; MOD(4,2) ---------- 0 SQL> select mod(4,3) from dual; MOD(4,3) ---------- 1
SIGN:retur positivt, negativt eller nul
CEIL – returnerer det næste højere tal
SQL> select ceil(3.1) from dual; CEIL(3.1) ---------- 4 SQL> select ceil(3) from dual; CEIL(3) ---------- 3
LOG – returner logaritmen
GULV – returner det næste mindre tal
SQL> select floor(3.1) from dual; FLOOR(3.1) ---------- 3 SQL> select floor(3) from dual; FLOOR(3) ---------- 3
SQRT – returner kvadratroden af et tal
Examples SELECT SQRT(25) "Square root" FROM DUAL; SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;
Oracle Dato-funktioner
Oracle-datofunktionerne er:
SYSDATE :retur aktuel dato
DUAL
MONTHS_BETWEEN (Returnerer et tal) :returnummer på måned mellem to datoer
ADD_MONTHS :tilføj et antal måneder til dato
NEXT_DAY :returnerer den næste dag i ugen efter en given dato
LAST_DAY :returnerer sidste dag i måneden
DBTIMEZONE – returner databasens tidszone
TRUNC:afkorter en dato.
CURRENT_TIMESTAMP – returnerer dato og klokkeslæt i TIMESTAMP-format
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
Eksplicit type konverteringsfunktioner
TO_CHAR -konverterer tal eller dato til VARCHAR2
TO_NUMBER :Konverter tegn til tal
TO_DATE:Det konverterer til dato
Examples SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2 ; TO_CHAR(SYSDATE,'DD- -------------------- 01-SEP-2019,34
Andre funktioner
NVL (udtr1, udtr2) og NVL3
NVL – tager to argumenter:NVL(x1, x2), Returnerer x2 når x1 er NULL eller x1 når x1 ikke er NULL. NVL2 – tager tre argumenter:NVL2(x1, x2, x3), returnerer x3, når x1 er NULL eller x2, når x1 ikke er NULL
DECODE Denne funktion fungerer som en IF-THEN-ELSE eller CASE-sætning.
COALESCE – returner den første ikke-NULL-værdi i en liste
SYS_CONTEXT – returner systemattributter
UID – returner numerisk bruger-id for nuværende session
Lille quiz for at teste viden om Enkeltrække-funktioner i SQL
Spørgsmål 1 :Du bruger funktioner i en række i en select-sætning. Hvilken funktion kan bedst kategoriseres som lignende i funktion til en if-then-else-udsagn?
A) sqrt( )
B) decode( )
C) rowidtochar( )
D) new_time( )
Forklaring:
Decode( )-funktionen fungerer som en if-then-else-sætning i dine SQL-sætninger. Valget sqrt( ) er forkert, fordi sqrt( ) producerer
kvadratroden af et tal. Valget new_time( ) er forkert, fordi funktionen new_time( ) returnerer en ny tid baseret på værdier angivet i kaldet til den pågældende funktion.
Endelig er valget rowidtochar( ) forkert, fordi rowidtochar( ) er en funktion, der konverterer ROWID-information til CHAR-information.
Spørgsmål 2:
Du ønsker at bruge en række funktioner i dine SQL-sætninger. Hvilke tre af følgende er talfunktioner? (Vælg tre af de fire.)
A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Forklaring:
Den eneste ikke-talfunktion i denne list er funktionen to_number( ),
som er en konverteringsoperation.
Spørgsmål 3 Følgende SQL-sætning blev taget fra en SQL*Plus-session:
vælg decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno fra DEPT
hvor substr(ENAME,1,1)> to_number ('V') og EMPNO> 1000
ordre efter EMPNO desc, ENAME asc;
Hvilken af følgende linjer i select-sætningen vist i den
forrige kodeblok indeholder en fejl?
A) vælg decode(EMPNO, 58385, 'INAKTIV', 'AKTIV') empno
B) fra EMP
C) og EMPNO> 02000
D) hvor substr(ENAME,1,1 )> to_number('S')
E) ordre efter EMPNO desc, ENAME asc;
Forklaring:(D)
Tegn, der er alfabetiske, såsom S, kan ikke konverteres til tal. Når denne sætning køres, vil den producere en fejl på denne linje. De
andre linjer i denne forespørgsel er korrekte som sammensat.
Spørgsmål 4 Hvilken SELECT-sætning får resultatet 'elloworld' fra strengen 'HelloWorld'?
A. SELECT SUBSTR( ‘HelloWorld’,1) FROM dual;
B. VÆLG INITCAP(TRIM (‘HelloWorld’, 1,1)) FRA dual;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER(TRIM (' H' FRA 'HelloWorld')) FROM dual;
Svar:E
Håber du kan lide dette indlæg om Single row-funktioner i SQL. Giv venligst feedback
Relaterede artikler
Analytiske funktioner i Oracle:Oracle-analytiske funktioner beregner en aggregeret værdi baseret på gruppe af rækker ved at bruge overpartition efter oracle-klausul, de adskiller sig fra aggregerede funktioner
rang i oracle:RANK, DENSE_RANK og ROW_NUMBER er oracle analytiske funktion som bruges til at rangordne rækker i gruppen af rækker kaldet vindue
Lead-funktion i Oracle :Tjek LAG-funktionen i Oracle &Lead-funktion i Oracle, hvordan man bruger dem i analytiske forespørgsler, og hvordan det fungerer i Oracle sql
Top-N-forespørgsler i Oracle:Tjek denne side ud for at udforske de forskellige måder at opnå Top-N-forespørgsler i Oracle og sideinddeling i Oracle-forespørgsels-oracle-databasen.