SQL - расчет, если буквенно-цифровое значение существует в буквенно-цифровом диапазоне - PullRequest
0 голосов
/ 09 декабря 2010

У меня есть столбец varchar в базе данных и введено требование, чтобы пользователь мог ввести диапазон, например, от / ABC001 до ABC100

У меня есть следующий запрос, но он может быть не строгимДостаточно, чтобы выяснить, существуют ли какие-либо значения в этом диапазоне.

SELECT count(*) FROM MyTable where MyColumn between 'ABC001' and 'ABC005'

У меня есть ощущение, что следует использовать порядок по или есть лучший способ вычислить существование значений в буквенно-цифровом диапазоне

Ответы [ 3 ]

1 голос
/ 09 декабря 2010

Заказ не требуется . Это должно быть правильно.

0 голосов
/ 09 декабря 2010

ОП сказал:

или есть лучший способ рассчитать существование ценностей в пределах буквенно-цифровой диапазон

Лучший способ будет:

SELECT count(*) FROM MyTable where MyColumn>='ABC001' and MyColumn<='ABC005'

Я считаю, что большинство людей не могут вспомнить, если BETWEEN включает или исключает "конечные точки". Просто всегда используя >= и / или > и / или <= и / или <, вы получаете больше ясности и гибкости.

Любой ORDER BY будет применен к результирующему набору строк, которые удовлетворяют условию WHERE, и не имеет никакого отношения к фильтрации WHERE. Вы можете использовать его, если хотите, чтобы окончательный набор результатов был в определенном порядке, но это не повлияет на то, какие строки включены в результаты.

0 голосов
/ 09 декабря 2010

Если вы хотите увеличить эту операцию, вы можете создать индекс для нее.

Упорядочение по операции выполняется в конце выполнения запроса, поэтому данные будут получены таким же образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...