对负数使用 Between 运算符
Using the Between Operator for negative numbers
为什么使用 between 运算符对正数有效,而对负数却不行?
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
select case when -1.25 between -2 and -1 then 'works' else 'no' end -- Returns works
试试下面的方法:
您需要与 1.0 或 2.0 之类的浮点值进行比较,并且范围应该按正确的顺序进行比较,最小值将首先出现,然后是最大值,例如 -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
负值从 -2 增长到 -1。当然,BETWEEN
中的test_expression
、begin_expression
、end_expression
的数据类型必须相同。
所以你必须使用这个:
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
为什么使用 between 运算符对正数有效,而对负数却不行?
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
select case when -1.25 between -2 and -1 then 'works' else 'no' end -- Returns works
试试下面的方法: 您需要与 1.0 或 2.0 之类的浮点值进行比较,并且范围应该按正确的顺序进行比较,最小值将首先出现,然后是最大值,例如 -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
负值从 -2 增长到 -1。当然,BETWEEN
中的test_expression
、begin_expression
、end_expression
的数据类型必须相同。
所以你必须使用这个:
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