Mục lục
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
Xem thêm các chuyên mục:

Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.


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:
