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

CHỌN ĐẾM (*);

Thông thường, tất cả các lựa chọn có dạng SELECT [columns, scalar computations on columns, grouped computations on columns, or scalar computations] FROM [table or joins of tables, etc]

Bởi vì điều này cho phép tính toán vô hướng đơn giản, chúng tôi có thể thực hiện một số việc như SELECT 1 + 1 FROM SomeTable và nó sẽ trả về một tập bản ghi có giá trị 2 cho mọi hàng trong bảng SomeTable .

Bây giờ, nếu chúng ta không quan tâm đến bất kỳ bảng nào, mà chỉ muốn thực hiện tính toán vô hướng của chúng ta, chúng ta có thể muốn làm một cái gì đó như SELECT 1 + 1 . Điều này không được tiêu chuẩn cho phép, nhưng nó hữu ích và hầu hết các cơ sở dữ liệu đều cho phép nó (Oracle không cho phép trừ khi nó được thay đổi gần đây, ít nhất là trước đây nó không).

Do đó, các SELECT trần như vậy được coi như thể chúng có mệnh đề from chỉ định một bảng có một hàng và không có cột (tất nhiên là không thể, nhưng nó thực hiện được mẹo). Do đó SELECT 1 + 1 trở thành SELECT 1 + 1 FROM ImaginaryTableWithOneRow trả về một hàng với một cột duy nhất có giá trị 2 .

Hầu hết chúng tôi không nghĩ về điều này, chúng tôi chỉ quen với thực tế là các lệnh CHỌN đơn thuần cho kết quả và thậm chí không nghĩ đến thực tế là phải có một số thứ một hàng được chọn để trả về một hàng.

Đang thực hiện SELECT COUNT(*) bạn đã làm tương đương với SELECT COUNT(*) FROM ImaginaryTableWithOneRow tất nhiên trả về 1.



  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ó cách nào để truy cập giá trị hàng trước đó trong câu lệnh SELECT không?

  2. Không thể ghi dữ liệu vào phương tiện. Vs2017 ASP.net core Giàn giáo (MSSQL WINDOW 10)

  3. Chức năng xác định của Máy chủ Sql do người dùng xác định

  4. Truy vấn sql với tham gia và nhóm theo và

  5. Thay thế ISNUMERIC () hiệu quả trên SQL Server?