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.