Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcje jednowierszowe w Oracle sql

Jest to część samouczka Oracle SQL i zawiera dobre przykłady, objaśnienie funkcji jednorzędowych w Oracle Sql

Funkcje to programy, które przyjmują zero lub więcej argumentów i zwracają pojedynczą wartość.

Funkcje mogą być jednorzędowe, wielorzędowe

Będziemy omawiać tutaj funkcje jednowierszowe w SQL

Co to są funkcje jednowierszowe w Oracle SQL

Funkcje jednowierszowe są funkcjami wbudowanymi i obejmują funkcje znakowe, numeryczne, daty, konwersji i funkcje zdefiniowane przez użytkownika.

Wszystkie funkcje jednowierszowe mogą być używane w programach SQL lub PL/SQL i mogą być używane w klauzulach SELECT, WHERE i ORDER BY.

Funkcje jednowierszowe obejmują TO_CHAR, TO_DATE, UPPER, LOWER itp.

Funkcje jednowierszowe mogą być używane również w klauzuli SET i poleceniu UPDATE. Funkcje jednowierszowe nie mogą być używane w klauzuli HAVING.

Przeanalizujmy różne ważne funkcje jednorzędowe

Funkcje znaków w  SQL

Funkcje znakowe to:
LOWER(‘znak’)  :konwertuj ciąg na małe litery

SQL> select ename from  "EMP";

ENAME
----------
Blake
Clark
Scott

SQL> select lower(ename) from  "EMP";

LOWER(ENAM
----------
blake
clark
scott

UPPER('CHAR')  :konwertuj ciąg na wielkie litery

SQL> select upper(ename) from  "EMP";

UPPER(ENAM
----------
BLAKE
CLARK
SCOTT

INITCAP(‘Char’) :zwróć łańcuch z pierwszą literą każdego słowa wielką literą

SQL> select initcap(ename) from  "EMP";

INITCAP(EN
----------
Blake
Clark
Scott

CONCAT – Funkcja ma ograniczenie do dwóch parametrów.

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

DŁUGOŚĆ :zwróć długość łańcucha

SQL> select ename,length(ename) from emp;

ENAME      LENGTH(ENAME)
---------- -------------
Blake                  5
Clark                  5
Scott                  5

LENGTHB:zwraca długość ciągu w bajtach

SQL> select ename,length(ename),lengthb(ename) from emp;

ENAME      LENGTH(ENAME) LENGTHB(ENAME)
---------- ------------- --------------
Blake                  5              5
Clark                  5              5
Scott                  5              5

INSTR :zwraca indeks szukanego ciągu w ciągu,

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:lewy dopełnij ciąg z n znakami

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:usuń wiodące znaki z ciągu

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:przeprowadź wyszukiwanie podciągu i zamień

SELECT REPLACE('JACK and JUE','J','BL') "Changes"
     FROM DUAL;

Changes
--------------
BLACK and BLUE

SUBSTR – zwróć sekcję ciągu określonego w wartościach liczbowych
SUBSTRB – to samo co SUBSTR tylko z bajtami
SOUNDEX – zwróć fonetyczną reprezentację ciągu
TRANSLATE – wykonaj wyszukiwanie i zamianę znaków
TRIM – ciąg znaków wiodących i końcowych w ciągu

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;

Jak wyjaśniono, funkcja pojedynczego wiersza działa w każdym wierszu

Powiązane: przetwarzanie dekodowania Oracle sql

Funkcje numeryczne w Sql

Funkcje liczbowe to:
ROUND :zaokrągla liczbę

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 :obcina liczbę
MOD:zwraca moduł, czyli resztę

SQL> select  mod(4,2) from dual;

  MOD(4,2)
----------
         0

SQL> select  mod(4,3) from dual;

  MOD(4,3)
----------
         1

SIGN:zwróć dodatnią, ujemną lub zerową
CEIL – zwraca następną wyższą liczbę

SQL> select  ceil(3.1) from dual;

 CEIL(3.1)
----------
         4

SQL> select  ceil(3) from dual;

   CEIL(3)
----------
         3

LOG – zwróć logarytm
PIĘTRO – zwróć następną mniejszą liczbę

SQL> select  floor(3.1) from dual;

FLOOR(3.1)
----------
         3

SQL> select  floor(3) from dual;

  FLOOR(3)
----------
         3

SQRT – zwraca pierwiastek kwadratowy z liczby

Examples

SELECT SQRT(25) "Square root" FROM DUAL;
SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;

Funkcje daty Oracle

Funkcje Oracle Data to:
SYSDATE :zwróć bieżącą datę
DUAL
MONTHS_BETWEEN (zwraca liczbę) :zwróć liczbę miesięcy między dwiema datami
ADD_MONTHS :dodaj liczbę miesięcy do date
NEXT_DAY :zwraca następny dzień tygodnia następujący po podanej dacie
LAST_DAY :zwraca ostatni dzień miesiąca


DBTIMEZONE – zwróć strefę czasową bazy danych
TRUNC:obcina datę.
CURRENT_TIMESTAMP – zwraca datę i czas w formacie TIMESTAMP

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


Funkcje konwersji typu jawnego

TO_CHAR – konwertuje liczbę lub datę na VARCHAR2
TO_NUMBER :Konwertuje znak na liczbę
TO_DATE:Konwertuje na datę

Examples
SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual
  2  ;

TO_CHAR(SYSDATE,'DD-
--------------------
01-SEP-2019,34

Inne funkcje

NVL (expr1, expr2) i NVL3
NVL – przyjmuje dwa argumenty:NVL(x1, x2), Zwraca x2 gdy x1 jest NULL lub x1 gdy x1 nie jest NULL. NVL2 – przyjmuje trzy argumenty:NVL2(x1, x2, x3), zwraca x3 gdy x1 jest NULL lub x2 gdy x1 nie jest NULL

DECODE Ta funkcja działa jak instrukcja IF-THEN-ELSE lub CASE.
COALESCE – zwróć pierwszą niezerową wartość z listy
SYS_CONTEXT – zwróć atrybuty systemowe
UID – zwróć numeryczny identyfikator użytkownika dla bieżącej sesji

Mały quiz do testowania wiedzy na temat funkcji pojedynczego wiersza w SQL

Pytanie 1 :Używasz funkcji jednowierszowych w instrukcji SELECT. Którą funkcję najlepiej zaklasyfikować jako podobną pod względem funkcji do instrukcji „jeśli to inaczej”?

A) sqrt( )
B) decode( )
C) rowidtochar( )
D) new_time( )

Wyjaśnienie:

Funkcja decode() działa jak klauzula if-then-else w instrukcjach SQL. Wybór sqrt() jest niepoprawny, ponieważ sqrt() daje pierwiastek
kwadratowy z liczby. Wybór new_time() jest niepoprawny, ponieważ funkcja new_time() zwraca nowy czas na podstawie wartości określonych w wywołaniu tej funkcji.

Wreszcie, wybór rowidtochar() jest niepoprawny, ponieważ rowidtochar() jest funkcją, która konwertuje informacje ROWID na informacje CHAR.

Pytanie 2:

Chcesz używać funkcji jednowierszowych w instrukcjach SQL. Które trzy z poniższych są funkcjami liczbowymi? (Wybierz trzy z czterech).

A) sinh( )
B) sqrt( )
C) to_number( )
D) round( )
Wyjaśnienie:
Jedyna funkcja nielicząca w tej list to funkcja to_number(),
która jest operacją konwersji.

Pytanie 3 Następująca instrukcja SQL została pobrana z sesji SQL*Plus:
select decode(EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
gdzie substr(ENAME,1,1)> to_number ('V') i EMPNO> 1000
zamówienie według EMPNO desc, ENAME asc;

Który z poniższych wierszy w instrukcji SELECT pokazanych w
poprzednim bloku kodu zawiera błąd?

A) wybierz decode(EMPNO, 58385, 'INACTIVE', 'ACTIVE') empno
B) z EMP
C) i EMPNO> 02000
D) gdzie substr(ENAME,1,1 )> to_number('S')
E) zamówienie według EMPNO desc, ENAME asc;

Objaśnienie:(D)
Znaki alfabetyczne, takie jak S, nie mogą być konwertowane na liczby. Uruchomienie tej instrukcji spowoduje wystąpienie błędu w tym wierszu.
Pozostałe wiersze w tym zapytaniu są poprawne w ich składzie.

Pytanie 4  Która instrukcja SELECT otrzyma wynik „elloworld” z ciągu „HelloWorld”?
A. SELECT SUBST( 'Witaj Świecie',1) FROM dual;
B. SELECT INTCAP(TRIM („HelloWorld”, 1,1)) FROM dual;
C. SELECT LOWER(SUBSTR('HelloWorld', 1, 1) FROM podwójna;
D. SELECT LOWER(SUBSTR('HelloWorld', 2, 1) FROM podwójna;
E. SELECT LOWER(TRIM (' H' Z 'HelloWorld')) Z dual;
Odpowiedź:E

Mam nadzieję, że podoba Ci się ten post na temat funkcji pojedynczego wiersza w SQL. Prosimy o przesłanie opinii

Powiązane artykuły
Funkcje analityczne w Oracle :Funkcje analityczne Oracle obliczają wartość zagregowaną na podstawie grupy wierszy przy użyciu klauzuli over partition by oracle , różnią się one od funkcji agregujących
rank w Oracle:RANK, DENSE_RANK i ROW_NUMBER są analityczne Oracle funkcja służąca do uszeregowania wierszy w grupie wierszy o nazwie window
Funkcja Lead w Oracle :Sprawdź funkcję LAG w Oracle i funkcję Lead w Oracle, jak ich używać w zapytaniach analitycznych i jak to działa w Oracle sql
Najczęstsze zapytania w Oracle :Sprawdź tę stronę, aby zapoznać się z różnymi sposobami uzyskania Top-N zapytań w Oracle i paginacji w bazie danych Oracle zapytań 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. Jaka jest różnica między jawnymi i niejawnymi kursorami w Oracle?

  2. Liczba Oracle do C# dziesiętna

  3. Funkcja NLS_LOWER() w Oracle

  4. Obliczanie różnicy między dwoma znacznikami czasu w Oracle w milisekundach

  5. Powiadomienie o zmianie bazy danych Oracle