У меня есть таблица сотрудников и программа, которая отображает некоторые критерии запроса, которые пользователь может использовать для SELECT
, например, пользователь может искать сотрудника (или набор из них) с помощью сотрудника ID, однако, я разрешаю пользователю выбирать диапазон идентификаторов для выполнения поиска.Между заказанными значениями
В этой реализации БД хранит строковые значения для ID, то они выглядят так:
«000001», «000002» ...., «000200» и так далее, в то время как будучи струнами они также номера. Поэтому, когда я сделать запрос следующим образом:
select * from employees where id_employee BETWEEN '000001' AND '000056'
Я получаю результаты, которые я бы ожидать, но когда я делаю это:
select * from empleados where id_empleado BETWEEN '000056' AND '000001'
Я не получаю ничего, казалось бы, как если бы SQLServer лечит valus как целые числа или десятичные значения и, следовательно, не могут получить результаты.
Я могу сделать валидацию в окне критериев, которые я использую, но мне было интересно, если бы был способ сделать это по умолчанию для БД или что-нибудь, что позволило бы мне изменить около 100 этих окон критериев.
Заранее спасибо.
EDIT: Я не спорю о функциональности оператора BETWEEN, а ищет способ использовать его, говоря SQLServer, чтобы сделать это так, как я должен его использовать?
вопрос ... Почему на Земле вы храните FK в качестве значения строки ? Сделайте его правильным значением INT без значения NULL, каким оно должно быть. Если я правильно понял, вы должны использовать эти значения для nvarchar, чтобы заставить его работать. – User987
Возможный дубликат [предложение BETWEEN по сравнению с <= AND > =] (http://stackoverflow.com/questions/4809083/between-clause-versus- и) –
@ User987 Я не администратор базы данных, просто программист, это было уже так, когда я начал работать здесь, и это большая большая программа, так что да, я не думаю, что мы это изменим. Все FK - это в основном строки. –