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

Cách tìm Phép nhân đang chạy

Phương pháp của bạn là khá hợp lý. Bắt tốt nullif() trong sum() , nhân tiện. Mặc dù else mệnh đề chỉ được tính sau then , các thành phần của cái khác được tính toán trong quá trình tổng hợp - vì vậy log(0) sẽ trả về một lỗi.

Tôi nghĩ rằng có một số cách đơn giản hơn để tính dấu hiệu, chẳng hạn như:

power(-1, sum(case when column1 < 0 then 1 else 0 end))

hoặc:

(case when sum(case when column1 < 0 then 1 else 0 end) % 2 = 0 then 1 else -1 end)

Tuy nhiên, phiên bản nào "đơn giản hơn" là một vấn đề cần quan tâm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối HP-UX Itanium với SQL Server

  2. Cách chủ động thu thập thông tin phân mảnh chỉ mục máy chủ SQL

  3. Cách sys.dm_exec_describe_first_result_set_for_object hoạt động trong SQL Server

  4. Làm cách nào để truy vấn các giá trị và thuộc tính Xml từ bảng trong SQL Server?

  5. Thay thế chức năng trễ dẫn trong SQL Server 2008