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

Sql - thay thế cho WITH ... AS

Chỉ cần sử dụng kết hợp có điều kiện:

SELECT SUM(CASE WHEN STATUS = 'A' THEN 1 ELSE 0 END) AS A_COUNT ,
       SUM(CASE WHEN STATUS = 'B' THEN 1 ELSE 0 END) AS B_COUNT ,
       SUM(CASE WHEN STATUS = 'C' THEN 1 ELSE 0 END) AS C_COUNT ,
       SUM(CASE WHEN STATUS = 'D' THEN 1 ELSE 0 END) AS D_COUNT ,
       SUM(CASE WHEN STATUS = 'E' THEN 1 ELSE 0 END) AS E_COUNT ,
       SUM(CASE WHEN STATUS = 'F' THEN 1 ELSE 0 END) AS F_COUNT 
FROM XYZ ;

Tôi nên chỉ ra rằng việc đặt các giá trị trên các hàng riêng biệt thậm chí còn dễ dàng hơn:

select status, count(*)
from xyz
group by status;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trích xuất các hàng từ DB bao gồm các hàng cạn kiệt

  2. Tạo bản sao Cơ sở dữ liệu thử nghiệm của Sản xuất chỉ với một tập dữ liệu mẫu

  3. Chuyển đổi WM_CONCAT sang Listagg

  4. Oracle trả về cùng một bí danh cho các trường hợp khác nhau trên lựa chọn

  5. Cách tốt nhất để rút ngắn chuỗi UTF8 dựa trên độ dài byte