我正在尝试选择COLUMN的值介于1和9之间的所有行。问题是COLUMN的数据类型是文本,我使用以下代码来获取这些行:
SELECT * FROM TABLE WHERE COLUMN BETWEEN '1' AND '9';
我没有获得COLUMN值在1到9之间的行,而是获得了COLUMN值为10,11等的行。 我怎样才能让它只给出COLUMN值在1到9之间的行?
答案 0 :(得分:4)
如果列中的所有值都保证为整数,则可以执行以下操作:
SELECT * FROM TABLE WHERE CInt(COLUMN) BETWEEN 1 AND 9
答案 1 :(得分:3)
例如:
SELECT * FROM TABLE WHERE COLUMN BETWEEN '1' AND '9' and LEN(COLUMN) = 1;
答案 2 :(得分:-1)
您可以在where子句中转换列类型。
SELECT * FROM TABLE WHERE convert(bigint,COLUMN) BETWEEN '1' AND '9';
但要确保所有值都可以转换为bigint类型,或者你可以使用float / int等。