1

シンプルな between ステートメントを書いています。

create table temp(mid int)

insert into temp
values
(1),(2),(3),(4)

select * from temp
where mid between 4 and 1

drop table temp

これは1,2,3,4を出力します

ただし、このステートメントを逆に使用したいと思います(これは、より難しい問題の簡単な例として使用しています)。4 と 1 の間で書くことができる方法はありますか? これを実行しようとすると、空のデータセットが返されます。

4

4 に答える 4

2

結果を並べ替えたいだけだと思います。

SELECT mid
FROM temp
WHERE mid BETWEEN 1 AND 4
ORDER BY mid DESC

または、代わりに in 関数を使用できます。

SELECT mid
FROM temp
WHERE mid IN(4, 3, 2, 1)
于 2011-08-10T17:45:59.847 に答える
1

おそらく、範囲がうまくいくでしょう。

IN (4,3,2,1)

別の考え、なぜ使用しないのですか:

WHERE mid < 4 and mid > 1

また

WHERE mid !> 4 and mid !< 1
于 2011-08-10T17:35:50.573 に答える
1

BETWEEN<<=>、およびを使用するだけで、より簡単で、より柔軟で、より明確になります>=

私はこれをします:

create table temp(mid int)
insert into temp
values
(1),(2),(3),(4)
select * from temp
where mid<=4 and mid>=1  --same as where mid>=1 and mid<=4
--    ^^^^^^     ^^^^^^
drop table temp
于 2011-08-10T17:46:15.283 に答える
0

X BETWEEN Y AND Zは と同等X >= Y AND X <= Zです。組み込みの仮定はそれでY <= Zあり、その仮定なしで BETWEEN を機能させる方法はないと思います。ただし、これを回避策として使用できます。

...
WHERE X BETWEEN Y AND Z 
   OR X BETWEEN Z AND Y
于 2011-08-10T17:47:22.990 に答える