Конвертация типа поля при селекте

[slon]

Guest
Конвертация типа поля при селекте

В базе поле field1 имеет тип VARCHAR и в одном конкретном случае содержит числовое значение (например 3), вопрос в том как мне при селекти сравнить два числа?

SELECT id FROM table WHERE field1 <= N

Если N = 3,4,5... то все как бы правильно, но вот совсем все плохо если N равно 25, то в нашем случае он посчитает 25 за 2.

Что мне делать, как мне быть?
P.S. в данном случае речь шла о Interbase (Firebird), но этот вопрос можно применить и к MySQL
 

deek

Новичок
старый, добрый, универсальный, но идеологически неверный способ:
SELECT id FROM table WHERE (field1*1) <= N

новый способ для любой СУБД, поддерживающей SQL-99:
SELECT id FROM table WHERE CAST(field1 AS INTEGER) <= N
 
Сверху