sql >> Database teknologi >  >> RDS >> Oracle

Enkeltrækkefunktioner i Oracle sql

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.


  1. Er der en måde at hente autoincrement-id'et fra en forberedt erklæring

  2. Ret MySQL-advarsel 1287:'BINARY expr' er forældet og vil blive fjernet i en fremtidig udgivelse

  3. Slet med Join i MySQL

  4. CURRENT_TIMESTAMP Eksempler i SQL Server (T-SQL)