сравнить целое число с преобразованным полем VARCHAR T-SQL - PullRequest
1 голос
/ 12 декабря 2011

В базе данных, с которой я работаю, в таблице есть поле с типом данных varchar (10). Поле может быть нулевым и не обязательно должно содержать целые числа, но в большинстве случаев оно есть. Я сравниваю значение этого поля в моем предложении WHERE для каждой итерации в моем запросе с целочисленным значением. По крайней мере одно число должно существовать справа от десятичного разряда, и может быть до 2 десятичных разрядов, но большую часть времени будет 1. 0,00 может соответствовать, если сравнивать с 0, но 0 не будет соответствовать, потому что это не после него нет десятичного числа. Какую формулу безопаснее всего использовать, чтобы я учитывал только ненулевые двойные значения?

Предположим, у меня есть следующие значения в моей таблице:

NULL
2,49
2.0
2
2.1
2,4

Мне бы хотелось, чтобы эти значения считались истинными в этом выражении:
2,49
2.0
2.1
2,4

Вот начало .. Я не фигурировал ни в NULL, ни в десятичной ситуации ..

AND CONVERT (INT, fieldname.sortorder) = 2

1 Ответ

1 голос
/ 12 декабря 2011

Добавьте дополнительные критерии для сравнения строк.

AND fieldname.sortorder LIKE '%[0-9].[0-9]%'
AND CONVERT(INT, fieldname.sortorder)= 2
...