Phân tách một chuỗi ngăn cách bởi dấu phẩy và chuyển vào mệnh đề IN của câu lệnh Select trong Oracle
1. Ví dụ
Trong một số tình huống bạn có một chuỗi (String), chẳng hạn:
'KING,JONES,FORD'
Bạn muốn biến nó thành một câu lệnh Select và trả về kết quả giống hình minh họa dưới đây:
Với Oracle > 9, bạn có thể viết câu lệnh SQL như sau:
-- ORACLE > 9.x
Select Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Emp_Name
From Dual
Connect By Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Is Not Null;
Tìm các nhân viên có tên nằm trong một String ngăn cách bởi dấu phẩy.
Select * From Employee Emp
Where
Emp.Emp_Name In ('KING','JONES','FORD');
Bạn cần kết hợp 2 câu lệnh lồng nhau:
Select *
From Employee Emp
Where Emp.Emp_Name In
(Select Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Emp_Name
From Dual
Connect By Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Is Not Null);
Kết quả chạy câu lệnh:
Các hướng dẫn về cơ sở dữ liệu Oracle
- Cài đặt PL/SQL Developer trên Windows
- Cơ sở dữ liệu Oracle mẫu để học SQL
- Hướng dẫn học SQL cho người mới bắt đầu với Oracle
- Cài đặt cơ sở dữ liệu Oracle 11g trên Windows
- Cài đặt cơ sở dữ liệu Oracle 12c trên Windows
- Cài đặt Oracle Client trên Windows
- Tạo Oracle SCOTT Schema
- Cơ sở dữ liệu mẫu
- Cấu trúc database và tính năng đám mây trong Oracle 12c
- Import và Export cơ sở dữ liệu Oracle
- Các hàm xử lý chuỗi trong Oracle
- Phân tách một chuỗi ngăn cách bởi dấu phẩy và chuyển vào mệnh đề IN của câu lệnh Select trong Oracle
- Truy vấn phân cấp trong Oracle
- Hướng dẫn và ví dụ Oracle Database Link và Synonym
- Hướng dẫn lập trình Oracle PL/SQL
- Phân tích XML trong Oracle PL/SQL
- Kiểm soát chuẩn hệ thống database Oracle (Audit Standard)
- Kiểm soát bắt buộc và kiểm soát quản trị trong Oracle
- Tạo và quản lý Oracle Wallet
Show More