Использование оператора Between для отрицательных чисел - PullRequest
0 голосов
/ 13 сентября 2018

Почему оператор «между» для положительных чисел работает, а для отрицательных - нет?

select case when 1.25 between 1 and 2 then 'Works'else 'no' end --- returns WORKS

select case when -1.25 between -1 and -2 then 'works' else 'no' end -- Returns NO

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Попробуйте ниже: вам нужно сравнить со значением с плавающей запятой, таким как 1,0 или 2,0, и диапазон должен быть в правильном порядке, сначала будет минимальное значение val, а затем сначала максимальное значение, например -2.0, так как оно минимально, а затем -1.0

.
select case when 1.25 between 1.0 and 2.0 then 'Works' else 'no' end 

select case when -1.25 between -2.0 and -1.0 then 'works' else 'no' end
0 голосов
/ 13 сентября 2018

Отрицательные значения возрастают с -2 до -1. Конечно, test_expression, begin_expression и end_expression в BETWEEN должны иметь одинаковый тип данных.

Так что вы должны использовать это:

select case when 1.25 between 1.0 and 2.0 then 'Works' else 'no' end -- returns WORKS
select case when -1.25 between -2.0 and -1.0 then 'works' else 'no' end -- Returns WORKS
0 голосов
/ 13 сентября 2018
select case when -1.25 between -2 and -1 then 'works' else 'no' end -- Returns works
...