2009-06-20 3 views
1

Например, если бы я сделал:В SQL, делает ли предложение BETWEEN формой BETWEEN самой низкой и самой высокой?

SELECT * FROM Users WHERE UserId BETWEEN 100 AND 1 

что бы результаты будут?

Редактировать: Извините, вы правы, я должен был указать. Я не хотел знать точное количество строк, которые бы возвращались, я просто хотел знать, будет ли он возвращать строки, которые были между 1 и 100, или если они возвратят строки от min(UserId) до 1 и от 100 до max(UserId).

+0

+1, так как я не уверен, почему это было ниспровергнуто - по общему признанию, в нем может быть больше деталей, но если вы хотите проголосовать, по крайней мере, сделайте любезность оставить комментарий относительно вашего обоснования :) –

+0

+1 Согласен. Разумеется, неплохо было бы ниспровергнуть. Андомар ответил на вопрос. – blntechie

+0

+1 Я не могу придумать ни одной причины, чтобы это было забито! Хотелось бы узнать, почему. –

ответ

13
a BETWEEN b AND c 

представляет собой сокращенную

b <= a and a <= c 

Так между 100 и 1 выигранный Ничего.

+0

, когда вы говорите b <= a и a <= c, в этом случае b = 100 и c = 1, так что бы он не возвращал 100 <= a (или от 100 до max (UserId)) и <= 1 (или min (UserId) до 1)? – Matt

+4

Мэтт: нет, потому что пересечение этих двух наборов пуст (оператор И). Вы были бы правы, если бы использовался OR. – GSerg

1

Возможно, это зависит от вашей РСУБД, но почему бы просто не попробовать? В MySQL, я не получаю ни одной строки из МЕЖДУ 100 И 1 запрос в то время как я получаю строки из просят от 1 до 100.