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

Cần sắp xếp tên nhân viên theo cột thành phố của họ một cách khôn ngoan

Thật không may, những gì bạn đang cố gắng thực hiện không thể thực hiện được, ít nhất là không phải trong SQL "thông thường" - bạn sẽ cần SQL động hoặc quy trình hai bước (trong bước đầu tiên tạo một chuỗi là một câu lệnh SQL mới). Phức tạp.

Vấn đề là bạn không bao gồm một danh sách cố định tên thành phố (dưới dạng chuỗi ký tự). Bạn đang cố gắng tạo các cột dựa trên bất cứ thứ gì bạn nhận được (chọn thành phố từ nhân viên). Vì vậy, số lượng cột và tên của các cột không được biết cho đến khi công cụ Oracle đọc dữ liệu từ bảng, nhưng trước khi công cụ khởi động nó phải biết tất cả các cột sẽ là gì. Mâu thuẫn.

Cũng xin lưu ý rằng nếu điều này là có thể, bạn gần như chắc chắn sẽ muốn (chọn khác biệt thành phố từ nhân viên).

THÊM:OP đặt một câu hỏi tiếp theo trong một bình luận (xem bên dưới).

Cách sắp xếp lý tưởng là để các thành phố nằm trong bảng riêng của chúng, nhỏ hơn và "thành phố" trong bảng nhân viên có ràng buộc khóa ngoại để thứ "thành phố" có thể quản lý được. Bạn không muốn một nhân viên nhân sự vào New York, một nhân viên khác vào Thành phố New York và một người thứ ba vào NYC cho cùng một thành phố. Bằng cách này hay cách khác, trước tiên hãy thử mã của bạn bằng cách thay thế truy vấn con theo sau toán tử IN trong mệnh đề tổng hợp bằng danh sách ký tự chuỗi được phân tách bằng dấu phẩy cho các thành phố:... IN ('DFW', 'CH', 'NY'). Lưu ý rằng thứ tự mà bạn đặt chúng trong danh sách này sẽ là thứ tự của các cột trong đầu ra. Tôi đã không kiểm tra toàn bộ truy vấn để xem liệu có bất kỳ vấn đề nào khác không; hãy thử điều này và cho chúng tôi biết điều gì sẽ xảy ra.

Chúc bạn thành công!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Những điều bạn nên biết trước khi học Oracle

  2. NLS_INITCAP () Hàm trong Oracle

  3. ORA-04021:xảy ra thời gian chờ trong khi chờ khóa đối tượng

  4. cách xuất dữ liệu từ bảng nhật ký sang nội dung email trong oracle

  5. Hỗ trợ Spring JDBC và tập dữ liệu lớn