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

Thêm hàng trống vào kết quả truy vấn nếu không tìm thấy kết quả

Tôi e là rất ít lựa chọn.

Bạn luôn phải chạm vào bảng hai lần, cho dù COUNT, TỒN TẠI trước đó, TỒN TẠI trong UNION, mệnh đề TOP, v.v.

select
    id, category
from mytable
where category = @category
union all --edit, of course it's quicker
select
    0, ''
where NOT EXISTS (SELECT * FROM mytable where category = @category)

Giải pháp EXISTS tốt hơn là COUNT vì nó sẽ dừng lại khi tìm thấy một hàng. COUNT sẽ duyệt qua tất cả các hàng để thực sự đếm chú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. Cách viết hoa chữ cái đầu tiên của bản ghi trong SQL

  2. Làm cách nào để xóa tất cả các bản ghi trùng lặp khỏi Bảng SQL?

  3. Làm cách nào để tăng tốc Chế độ xem được lập chỉ mục này?

  4. Cách bỏ qua một tham số trong thủ tục được lưu trữ nếu giá trị của nó là null

  5. Lấy tên cột từ truy vấn không có dữ liệu