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

Truy vấn SQL để nhận các Giá trị riêng biệt của tất cả các giá trị cột trong bảng

Bạn có thể làm như thế này:

select col1 from table union
select col2 from table union
. . .
select coln from table;

Việc sử dụng union loại bỏ các giá trị trùng lặp. Lưu ý rằng điều này giả định rằng các loại cột tương thích (chẳng hạn như tất cả đều là chuỗi).

CHỈNH SỬA:

Nếu cột trong bảng chỉ có một loại. (Được rồi, nó có thể là một biến thể, nhưng đó có lẽ không phải là sự đơn giản hóa.) Bạn có thể truyền mọi thứ sang varchar2() :

select cast(col1 as varchar2(255)) from table union
select cast(col2 as varchar2(255)) from table union
. . .
select cast(coln as varchar2(255)) from table;

Ngoài ra, bạn có thể nhóm các cột theo kiểu dữ liệu và thực hiện chạy riêng cho từng cột hoặc một cột riêng biệt cho từng kiểu dữ liệu. Không chắc rằng bạn sẽ có kết quả khớp chính xác giữa các loại dữ liệu, vì vậy điều này có thể đáp ứng nhu cầu của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi trường ngày giờ thành trường ngày tháng trong SQL (Oracle)

  2. ORA-01403:không tìm thấy dữ liệu nào cho Chọn vào

  3. Chuỗi kết nối Oracle với xác thực Windows

  4. Các hàng Oracle JDBC batchUpdate bị ảnh hưởng luôn là -2 (Statement.SUCCESS_NO_INFO)

  5. SQL Cách chọn mục ngày gần đây nhất