Sql 将varchar更改为int
我有一个问题,我不知道如何解决 嗯 我有一个类似这个例子的数据库Sql 将varchar更改为int,sql,sql-server,Sql,Sql Server,我有一个问题,我不知道如何解决 嗯 我有一个类似这个例子的数据库 myTable ID(int) | Category (varchar(20)) 1 | 1029 2 | 2020 3 | 2030 类别中的所有记录均为数字,但格式为varchar。 我无法将类型从varchar更改为int 我需要的是在我的SQL查询中将varchar转换为int。 因为,我需要做一些像这样的事情 SELECT * FROM myTable HERE Category => 1000 AND Cate
myTable
ID(int) | Category (varchar(20))
1 | 1029
2 | 2020
3 | 2030
类别中的所有记录均为数字,但格式为varchar。
我无法将类型从varchar更改为int
我需要的是在我的SQL查询中将varchar转换为int。
因为,我需要做一些像这样的事情
SELECT * FROM myTable HERE Category => 1000 AND Category =< 2000
在这里从myTable中选择*类别=>1000和类别=<2000
这怎么可能
对不起,我的书面英语,但我希望你能理解:)只要使用
转换即可:
SELECT *
FROM myTable
WHERE Convert(Int, Category) >= 1000
AND Convert(Int, Category) <= 2000
如果您想使用索引,我建议:
SELECT *
FROM myTable
WHERE Category >= '1000' AND Category <= '2000' AND
LEN(Category) = 4;
然后,可以在计算列上添加索引:
alter table mytable add category_int as (try_convert(int, category)) persisted;
create index idx_mytable_category_int on mytable(category_int);
然后,公式:
SELECT *
FROM myTable
WHERE Category_int >= 1000 AND Category_int <= 2000
选择*
从myTable
其中Category_int>=1000和Category_int
SELECT *
FROM myTable
WHERE Category_int >= 1000 AND Category_int <= 2000