Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chọn tất cả các hàng xuất hiện trong danh sách 2927 id's

Đây là một cách khác để tiếp cận nó bằng cách chuyển các ID thành một bảng logic sử dụng Biểu thức bảng chung (CTE) sau đó kết hợp như bình thường. Có thể dễ dàng hơn khi nghĩ về nó theo cách này:

-- Build the list of IDs.
with data(str) as (
    select '67,122,173,256,284,285,288,289,291,294,296,298,301,320,346,359
     ,366,425,428,454,528,573,576,584,593,654,654,694,722,838,1833,1976,1979,1979,2002
     ,2004,2005,2045,2083,2109,2114,2126,2126,2157,2204,2204,2211,2212,2332,2576' 
    from dual
),
-- Turn the list into a table using the comma as the delimiter. Think of it
-- like a temp table in memory.
id_list(id) as (
  select regexp_substr(str, '(.*?)(,|$)', 1, level, NULL, 1)
  from data
  connect by level <= regexp_count(str, ',') + 1
)
-- Select data from the main table, joining to the id_list "temp" table where
-- the ID matches.
select tablename.*
from tablename, id_list
where tablename.id = id_list.id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để thay đổi ràng buộc

  2. Đọc dữ liệu POST từ Ứng dụng Biểu mẫu Oracle

  3. Con trỏ Oracle để gán

  4. Tại sao hàm to_char () của Oracle lại thêm khoảng trắng?

  5. PL / SQL (Cách tính ngày đầu tiên và ngày cuối cùng của bất kỳ quý nào trong năm)