Đây là một phần của hướng dẫn Oracle SQL và có các ví dụ hay, giải thích về các hàm hàng đơn trong Oracle Sql
Hàm là các chương trình không nhận hoặc nhiều đối số và trả về một giá trị duy nhất.
Các hàm có thể là một hàng, nhiều hàm
Chúng ta sẽ thảo luận ở đây Các hàm hàng đơn trong SQL
Hàm một hàng trong Oracle SQL là gì
Các hàm một hàng là các hàm được tích hợp sẵn và bao gồm các hàm ký tự, số, ngày tháng, chuyển đổi và do người dùng xác định.
Tất cả các hàm hàng đơn có thể được sử dụng trong các chương trình SQL hoặc PL / SQL và có thể được sử dụng trong các mệnh đề SELECT, WHERE và ORDER BY.
Các hàm một hàng bao gồm TO_CHAR, TO_DATE, UPPER, LOWER, v.v.
Các hàm một hàng cũng có thể được sử dụng trong mệnh đề SET của và lệnh CẬP NHẬT. Không thể sử dụng các hàm một hàng trong mệnh đề HAVING.
Hãy kiểm tra các chức năng hàng đơn quan trọng khác nhau
Chức năng Ký tự trong SQL
Các Hàm Ký tự là:
LOWER (‘char’):chuyển đổi chuỗi thành chữ thường
SQL> select ename from "EMP"; ENAME ---------- Blake Clark Scott SQL> select lower(ename) from "EMP"; LOWER(ENAM ---------- blake clark scott
UPPER (‘CHAR’):chuyển đổi chuỗi thành chữ hoa
SQL> select upper(ename) from "EMP"; UPPER(ENAM ---------- BLAKE CLARK SCOTT
INITCAP (‘Char’):trả về một chuỗi có chữ cái đầu tiên của mỗi từ được viết hoa
SQL> select initcap(ename) from "EMP"; INITCAP(EN ---------- Blake Clark Scott
CONCAT - Hàm có giới hạn hai tham số.
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:trả về độ dài của chuỗi
SQL> select ename,length(ename) from emp; ENAME LENGTH(ENAME) ---------- ------------- Blake 5 Clark 5 Scott 5
LENGTHB:trả về độ dài của một chuỗi tính bằng byte
SQL> select ename,length(ename),lengthb(ename) from emp; ENAME LENGTH(ENAME) LENGTHB(ENAME) ---------- ------------- -------------- Blake 5 5 Clark 5 5 Scott 5 5
INSTR:trả về chỉ mục của chuỗi được tìm kiếm trong một chuỗi,
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:đệm bên trái một chuỗi có n ký tự
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:tách các ký tự đứng đầu khỏi một chuỗi
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:thực hiện tìm kiếm và thay thế chuỗi con
SELECT REPLACE('JACK and JUE','J','BL') "Changes" FROM DUAL; Changes -------------- BLACK and BLUE
SUBSTR - trả về một phần của chuỗi được chỉ định bằng giá trị số
SUBSTRB - giống như SUBSTR chỉ với byte
SOUNDEX - trả về biểu diễn phiên âm của một chuỗi
DỊCH - thực hiện tìm kiếm ký tự và thay thế
TRIM - các ký tự đầu và cuối chuỗi của chuỗi
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;
Như đã giải thích, hàm một hàng hoạt động trên mỗi hàng
Liên quan:Xử lý giải mã sql Oracle
Các hàm số trong Sql
Các Hàm Số là:
ROUND:làm tròn một số
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:cắt bớt một số
MOD:trả về modulus.i.e phần còn lại
SQL> select mod(4,2) from dual; MOD(4,2) ---------- 0 SQL> select mod(4,3) from dual; MOD(4,3) ---------- 1
SIGN:trả về số dương, số âm hoặc số không
CEIL - trả về số cao hơn tiếp theo
SQL> select ceil(3.1) from dual; CEIL(3.1) ---------- 4 SQL> select ceil(3) from dual; CEIL(3) ---------- 3
LOG - trả về lôgarit
FLOOR - trả về số nhỏ hơn tiếp theo
SQL> select floor(3.1) from dual; FLOOR(3.1) ---------- 3 SQL> select floor(3) from dual; FLOOR(3) ---------- 3
SQRT - trả về căn bậc hai của một số
Examples SELECT SQRT(25) "Square root" FROM DUAL; SELECT order_total, CEIL(order_total) FROM orders WHERE order_id = 58758;
Hàm ngày của Oracle
Các Hàm Ngày của Oracle là:
SYSDATE:trả về ngày hiện tại
DUAL
MONTHS_BETWEEN (Trả về một số):trả về số tháng giữa hai ngày
ADD_MONTHS:thêm một số tháng vào date
NEXT_DAY:trả về ngày tiếp theo của tuần sau một ngày nhất định
LAST_DAY:trả về ngày cuối cùng của tháng
DBTIMEZONE - trả về múi giờ cơ sở dữ liệu
TRUNC:cắt bớt ngày.
CURRENT_TIMESTAMP - trả về ngày và giờ ở định dạng 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
Chức năng chuyển đổi loại rõ ràng
TO_CHAR -chuyển đổi số hoặc ngày thành VARCHAR2
TO_NUMBER:Chuyển đổi ký tự thành số
TO_DATE:Chuyển đổi thành ngày
Examples SQL> select to_char(sysdate ,'DD-MON-YYYY,MI') from dual 2 ; TO_CHAR(SYSDATE,'DD- -------------------- 01-SEP-2019,34
Các chức năng khác
NVL (expr1, expr2) và NVL3
NVL - nhận hai đối số:NVL (x1, x2), Trả về x2 khi x1 là NULL hoặc x1 khi x1 không NULL. NVL2 - nhận ba đối số:NVL2 (x1, x2, x3), trả về x3 khi x1 là NULL hoặc x2 khi x1 không NULL
DECODE Hàm này hoạt động giống như câu lệnh IF-THEN-ELSE hoặc CASE.
COALESCE - trả về giá trị không phải NULL đầu tiên trong danh sách
SYS_CONTEXT - trả về thuộc tính hệ thống
UID - trả về ID người dùng dạng số cho phiên hiện tại
Bài kiểm tra nhỏ để kiểm tra kiến thức về các hàm Hàng đơn trong SQL
Câu hỏi 1 :Bạn đang sử dụng các hàm một hàng trong một câu lệnh chọn. Chức năng nào tốt nhất có thể được phân loại là có chức năng tương tự như một câu lệnh if-then-else?
A) sqrt ()
B) decode ()
C) rowidtochar ()
D) new_time ()
Giải thích:
Hàm decode () hoạt động giống như mệnh đề if-then-else trong các câu lệnh SQL của bạn. Lựa chọn sqrt () không chính xác vì sqrt () tạo ra
căn bậc hai của một số. Lựa chọn new_time () không chính xác vì hàm new_time () trả về thời gian mới dựa trên các giá trị được chỉ định trong lệnh gọi hàm đó.
Cuối cùng, lựa chọn rowidtochar () không chính xác vì rowidtochar () là một hàm chuyển đổi thông tin ROWID thành thông tin CHAR.
Câu hỏi 2:
Bạn muốn sử dụng các hàm một hàng trong các câu lệnh SQL của mình. Ba trong số các hàm số sau đây là hàm số nào? (Chọn ba trong bốn.)
A) sinh ()
B) sqrt ()
C) to_number ()
D) round ()
Giải thích:
Hàm không phải là số duy nhất trong này list là hàm to_number (),
là một thao tác chuyển đổi.
Câu hỏi 3 Câu lệnh SQL sau được lấy từ một phiên SQL * Plus:
select decode (EMPNO, 74765, 'INACTIVE', 'ACTIVE') empno from DEPT
where substr (ENAME, 1,1)> to_number ('V') và EMPNO> 1000
đặt hàng bởi EMPNO desc, ENAME asc;
Dòng nào sau đây trong câu lệnh select được hiển thị trong
khối mã trước đó chứa lỗi?
A) chọn giải mã (EMPNO, 58385, 'INACTIVE', 'ACTIVE') empno
B) từ EMP
C) và EMPNO> 02000
D) trong đó substr (ENAME, 1,1 )> to_number ('S')
E) đặt hàng bởi EMPNO desc, ENAME asc;
Giải thích:(D)
Các ký tự trong bảng chữ cái, chẳng hạn như S, không thể chuyển đổi thành số. Khi câu lệnh này được chạy, nó sẽ tạo ra một lỗi trên dòng này.
các dòng khác trong truy vấn này đúng như đã soạn.
Câu hỏi 4 Câu lệnh SELECT nào sẽ nhận kết quả là ‘elloworld’ từ chuỗi ‘HelloWorld’?
A. CHỌN SUBSTR (‘HelloWorld’, 1) TỪ kép;
B. CHỌN INITCAP (TRIM (‘HelloWorld’, 1,1)) TỪ kép;
C. SELECT LOWER (SUBSTR ('HelloWorld', 1, 1) FROM dual;
D. SELECT LOWER (SUBSTR ('HelloWorld', 2, 1) FROM dual;
E. SELECT LOWER (TRIM (' H 'FROM' HelloWorld ')) TỪ kép;
Đáp án:E
Hy vọng bạn thích bài đăng này về Các hàm hàng đơn trong SQL. Vui lòng cung cấp phản hồi
Các bài viết có liên quan
Các hàm phân tích trong oracle:Các hàm Oracle Analytic tính toán giá trị tổng hợp dựa trên nhóm hàng bằng cách sử dụng mệnh đề over partition by oracle, chúng khác với các hàm tổng hợp
xếp hạng trong oracle:RANK, DENSE_RANK và ROW_NUMBER là phân tích oracle hàm được sử dụng để xếp hạng các hàng trong nhóm hàng được gọi là window
Hàm Lead trong oracle:Kiểm tra hàm LAG trong Oracle &hàm Lead trong Oracle, cách sử dụng chúng trong các truy vấn phân tích và cách hoạt động của nó trong Oracle sql
Truy vấn Top-N trong Oracle:Xem trang này để khám phá các cách khác nhau để đạt được các Truy vấn Top-N trong Oracle và Phân trang trong cơ sở dữ liệu oracle truy vấn oracle.