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

SQL động ASC và DESC

Bạn có thể thực hiện các giải pháp như @TonyAndrews bằng cách thao tác với các giá trị số hoặc dữ liệu. Đối với VARCHAR2 một thay thế cho SQL động có thể có hai biểu thức:

order by
   case when :sorting='ASC' then col1 end ASC,
   case when :sorting='DESC' then col1 end DESC

Khi :sorting có giá trị 'ASC' kết quả của ORDER BY đó trở nên giống như nếu nó đã từng là:

order by
   col1 ASC,
   NULL DESC

Khi :sorting có giá trị 'DESC' kết quả của ORDER BY đó trở nên giống như nếu nó đã từng là:

order by
   NULL ASC,
   col1 DESC

Một nhược điểm của phương pháp này là những trường hợp mà trình tối ưu hóa có thể bỏ qua thao tác SORT vì có một chỉ mục liên quan làm cho dữ liệu đã được sắp xếp như mong muốn, điều đó sẽ không xảy ra khi sử dụng phương pháp CASE như thế này. Điều này sẽ yêu cầu hoạt động sắp xếp bất kể điều gì.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt giá trị cho LIMIT trong khi sử dụng thu thập hàng loạt

  2. Cách tính toán các thay đổi trong Oracle sql

  3. Lấy kết xuất các bảng trong oracle 10g bằng thủ tục PL / SQL

  4. Làm thế nào để chèn một tệp lớn vào BLOB (Oracle) mà không cần tải tệp hoàn chỉnh vào bộ nhớ?

  5. làm thế nào để gửi tin nhắn SMS qua oracle 11g? khách hàng là con cóc và ở Ấn Độ, tôi phải gửi sms