У меня есть данные, которые (в основном) просто цифры:Как найти значение в диапазоне строк
id start end
1 1420010 1421011
2 B420010 B421011
3 1420010 1422011
4 7505017 7505017
Это действительно кажется, что она была дополнена пробелами во многих случаях.
Я хочу иметь возможность передать значение и вернуть ему все идентификаторы, которые имеют это значение в диапазоне. Первоначально я думал, что работал, когда пытался: where start >= '7505017' and end <= '7505017'
.
Когда я попытался сделать where start >= '1420010' and end <= '1420010'
, он не возвращает никаких результатов, и он должен. В идеале я должен иметь возможность искать любую ценность в этом диапазоне и возвращать значение. Я рисую пустое о том, почему у меня проблема.
Я пробовал заполнять начало пробелами и концом с помощью Zs.
(start >= @org + ' ' and end <= @org + 'ZZZZZZZZZZZZZZZZZ')
Что мне не хватает? Обратите внимание, что пользователь будет передавать только 7 цифр (которые будут контролироваться пользовательским интерфейсом).
Сравнение строк ведут себя по-разному в числовыми. Как вы обрабатываете идентификаторы, начинающиеся с букв, как в строке ID = 2? Это «больше» или «меньше», чем 1, 2, 7 и т. Д.? – iamdave
@MisterPositive В вопросе уже есть соответствующие части ('where' clauses). – iamdave
RTrim (LTrim (Заменить (yourColumn '', ''))) Чтобы избавиться от пробелов и т. Д. Поскольку @iamdave заявлял, что сравнение символьных данных с числовыми данными отличается. –