TSQL Странно, разделение не работает в select (но * - + работает нормально), но только для одного столбца - PullRequest
0 голосов
/ 04 мая 2018

У меня такая странная проблема:

select ****
COALESCE(Customers / (NULLIF(Visitors,0)),0) AS CR

для 3/3 возвратов 1 за 157/2 возвращает 0 или любой другой не 1 вернет 0.

CR является десятичным (8,2), и для всех остальных столбцов работает та же строка (со смесью разных столбцов)

Я пробовал + - *, все работает как следует, однако, как только я использую деление, оно не вернет значение, если оно не равно единице.

Что происходит ??? Почему деление не работает, тогда как все остальные арифметические функции работают просто отлично. Похоже, он не вернет десятичные дроби ...

1 Ответ

0 голосов
/ 04 мая 2018

Не могу воспроизвести ваши результаты, но, возможно, это поможет уточнить.

* ** 1003 тысяча два * Пример
Declare @T table (Customers int,Visitors int)
Insert Into @T values
(2,157),
(5,14),
(2,0),
(null,25),
(15,null)

select CR = IsNull((Customers+0.0) / nullif(Visitors,0),0)
 From  @T

Возвращает

CR
0.012738853503
0.357142857142
0.000000000000
0.000000000000
0.000000000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...