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

Truy vấn SQL IF SELECT là null thì hãy thực hiện một truy vấn khác

Có một số cách đơn giản chỉ sử dụng sql.

Xác định truy vấn đầu tiên của bạn dưới dạng bảng tạm thời, với kết hợp tất cả, lọc truy vấn thứ hai với số lượng của bảng tạm thời.

with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

Truy vấn này sẽ trả về các bản ghi của bảng thứ hai.

with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

Và nếu truy vấn tạm thời có kết quả, chỉ trả về truy vấn tạm thời.

Bạn có thể kiểm tra bằng sql fiddle tại đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL UPDATE tất cả các giá trị trong một trường có chuỗi nối thêm CONCAT không hoạt động

  2. Làm cách nào để khớp một ký tự trong MySQL thay cho%?

  3. JDBC:Chèn giá trị Ngày vào MySQL

  4. Cách chính xác và an toàn / bảo mật để giữ cho người dùng luôn đăng nhập là gì? bánh quy? phiên họp? PHP &&MYSQL

  5. Cách phân tầng vẫn tồn tại bằng JPA / EclipseLink