Select BETWEEN column values

I am trying to use BETWEEN with column names instead of direct values, something like this:

SELECT * FROM table WHERE column1 BETWEEN column2 AND column3;

This returns something like 17 lines, but if I write:

SELECT * FROM table WHERE (column1 <= column2 AND column1 >= column3) OR (column1 >= column2 AND column1 <= column3)

I will go around 600 lines. In both cases, I only get rows where the column value is actually the average value, but the second method gives me much more results, so the 1st method has something wrong.

I suspect the problem may be using the BETWEEN clause with column names instead of pure values, and somehow SQL will convert the column names to actual values. Strange, but can someone enlighten me, please? Thanks

+5
source share
4 answers
SELECT * FROM table WHERE column1 BETWEEN column2 AND column3; # gives 17 rows

coincides with

SELECT * FROM table WHERE (column1 >= column2 AND column1 <= column3) # gives 17 rows

-

(column1 <= column2 AND column1 >= column3)

OR ed, .

+10

Between A And B , A<B, .. Between, (A) (B), ,

, Where 3 Between 4 And 2, :

,

Select Case When 3 Between 4 and 2 then 'true' else 'false' end

false

+2

:

SELECT * FROM table WHERE (column1 <= column2 AND column1 >= column3) OR (column1 >= column2 AND column1 <= column3)

. , , .

SELECT * FROM table WHERE (column1 >= column2 AND column1 <= column3)
0
(column1 <= column2 AND column1 >= column3)

TRUE, :

column3 <= column1 <= column2

, :

column1 BETWEEN column3 AND column2

,

(column1 >= column2 AND column1 <= column3)

:

column2 <= column1 <= column3

, WHERE, .:

column1 BETWEEN column2 AND column3

column1 , .

, WHERE:

column1 BETWEEN column2 AND column3

WHERE:

(column1 BETWEEN column2 AND column3) OR (column1 BETWEEN column3 AND column2)

( , BETWEEN .. AND .. .)

0

All Articles