Арифметические операторы против varchar-данных в SQL-сервере - PullRequest
1 голос
/ 13 января 2009

Может кто-нибудь объяснить мне, как арифметические операторы, такие как> или <сравнивать строки в SQL Server 2005? </p>

Ответы [ 3 ]

1 голос
/ 13 января 2009

Сортировка (и, следовательно, операторы <>) зависит от параметров сортировки SQL Server: http://msdn.microsoft.com/en-us/library/ms144250(SQL.90).aspx

И правила для этого сопоставления вы должны найти в Интернете. Обратите внимание, что они часто очень сложны. Ради вас, я постараюсь избежать <и> сравнения VARCHAR, если вам действительно не нужно.

1 голос
/ 13 января 2009

Спасибо за быстрый ответ.

Причина, по которой я спрашиваю, заключается в том, что мне нужно запросить таблицу базы данных почтовых индексов Великобритании. В рассматриваемой таблице есть два столбца почтовых индексов: «from_postcode» и «to_postcode», и мне нужно определить, находится ли данный почтовый индекс между этими значениями.

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

Пора мне написать несколько (или, может быть, довольно много) тестов универа!

1 голос
/ 13 января 2009

Если они против числового поля, они работают примерно так, как вы ожидаете. Если это против символьного типа поля данных, они будут работать в алфавитном порядке. Поэтому, если вы хотите больше (>) 10 и меньше (<) 20, вы можете получить 11, 110, 123456 в ответ. </p>

Это один резон, почему всегда плохая идея хранить числа, которые вы хотите иметь, чтобы иметь возможность выполнять математические вычисления или сравнения как varchar (или любой другой тип данных типа char). Только цифры, которые не нуждаются в математических вычислениях (phone, zip, ssn и т. Д.), Должны храниться таким образом, и они всегда должны храниться в поле символьного типа для учета начальных нулей.

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