Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć bieganie mnożenia

Twoja metoda jest całkiem rozsądna. Dobry chwyt na nullif() w sum() , przy okazji. Chociaż else klauzula jest obliczane tylko po then , składniki else są obliczane podczas agregacji — więc log(0) zwróci błąd.

Myślę, że istnieje kilka prostszych sposobów obliczania znaku, takich jak:

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

lub:

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

Jednak to, która wersja jest „prostsza”, jest kwestią opinii.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wykonywanie tego samego pakietu SSIS z różnymi parametrami w różnym czasie

  2. Piętro data w serwerze SQL

  3. Zalecane procesory Intel dla SQL Server 2014 – marzec 2015

  4. Entity Framework 4 Tabela na hierarchię — jak zdefiniować właściwości nawigacyjne u dzieci?

  5. Korzystanie z zestawu wyników z podrzędnego WYBORU w przypadku napotkania zduplikowanych wierszy