在运营商问题之间

时间:2014-11-21 07:16:28

标签: mysql sql-server

tblEmployee

ID  Name  Salary
1   E1    10000
2   E2    20000
3   E3    30000
4   E4    40000
5   E5    50000

查询:

select * from tblEmployee where Salary between 10000 AND 40000

输出:

1   E1    10000
2   E2    20000
3   E3    30000
4   E4    40000

但是当我使用下面的查询时,我没有得到任何结果。为什么呢?

select * from tblEmployee where Salary between 40000 AND 10000

2 个答案:

答案 0 :(得分:3)

之间有语法:

val BETWEEN low AND high

是语法糖:

val >= low AND val <= high

因此,您的结果是预期的,因为任何值都不可能大于40000 小于10000.

答案 1 :(得分:1)

用于范围之间。我们必须始终从起点(低值)到终点(高值)定义得到结果。

因此没有得到结果,原因是从高到低不起作用。即使对于文本搜索,它始终应用相同的规则。 一些例子有效,即

BETWEEN 10 AND 20     
BETWEEN 'C' AND 'M'
BETWEEN #07/04/1996# AND #07/09/1996#; 

The BETWEEN operator selects values within a range. The values can be numbers, text, or dates.

http://msdn.microsoft.com/en-IN/library/ms187922.aspx