Sql 在VARCHAR列中搜索INT值

Sql 在VARCHAR列中搜索INT值,sql,select,int,range,varchar,Sql,Select,Int,Range,Varchar,这是我的问题: 我需要从MyTable中获取一系列值: 我的桌子 ID(INT) 合同编号(VARCHAR) 从MyTable中选择*,其中ContractNumber>=1000,ContractNumber从MyTable中选择* 其中cast(合同编号为int)>=1000 和cast(ContractNumber为int)您可以将varchar字段强制转换为int,如下所示适用于PostgreSQL SELECT * FROM MyTable WHERE ContractNumber::

这是我的问题:

我需要从MyTable中获取一系列值:

我的桌子 ID(INT)

合同编号(VARCHAR)

从MyTable中选择*,其中ContractNumber>=1000,ContractNumber
从MyTable中选择*
其中cast(合同编号为int)>=1000

和cast(ContractNumber为int)您可以将varchar字段强制转换为int,如下所示适用于PostgreSQL

SELECT * FROM MyTable WHERE ContractNumber::int4 >= 1000 AND ContractNumber::int4 <= 1999

从MyTable中选择*,其中ContractNumber::int4>=1000和ContractNumber::int4非常感谢,我使用BETWEN解决了我的问题,我也尝试了强制转换和转换,但没有成功

谢谢

SELECT * FROM MyTable 
WHERE cast(ContractNumber as int) >= 1000 
AND cast(ContractNumber as int) <= 1999
SELECT * FROM MyTable WHERE ContractNumber::int4 >= 1000 AND ContractNumber::int4 <= 1999