Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana menemukan Perkalian Berjalan

Metode Anda cukup masuk akal. Tangkapan yang bagus di nullif() di sum() , omong-omong. Meskipun else klausa adalah dihitung hanya setelah then , komponen dari else dihitung selama agregasi -- jadi log(0) akan mengembalikan kesalahan.

Saya rasa ada beberapa cara yang lebih sederhana untuk menghitung tanda, seperti:

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

atau:

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

Namun, versi mana yang "lebih sederhana" adalah masalah pendapat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah Count(*) mengembalikan nol?

  2. Hubungkan ke database SQL Server dari Node.js

  3. Menguasai Penggunaan Stoplist Dengan SQL Server Full-Text Search (FTS)

  4. Bagaimana cara mempertahankan kolom GEOMETRI atau GEOGRAFI yang dihitung

  5. Cara mendapatkan Nilai Sebelumnya untuk Nilai Null