sql server 2000 中的varchar字符类型是否可以比较大小?

比如
create table EMP
(salary varchar(10) nou null)
这样的话在查询语句中可否
SELECT * from EMP
where salary>1000
这里的salary可以直接和1000比较大小吗?还是必须转换成INT之类的数据类型才行?

转成int型再比较吧

 

你可以做个试验

执行下边这句

select a.id from
(select '2' id
union all
select '10' id
union all
select '100' id) a
order by a.id

所以你还是用cast 把varchar的转成int型或者numeric型之类的再做比较吧

追问

呃…我现在在学校电脑上没有SQL SERVER…我只是想知道直接比较会不会显示出错…

追答

恩,我给你截图,你看看结果

正常应该2在10前,可是这样排序后,2在最后,结果就是错的,所以要转成int型

追问

可是百科里面定义是:
比较运算符
比较运算符测试两个表达式是否相同。除了 text、ntext 或 image 数据类型的表达式外,比较运算符可以用于所有的表达式。

追答

是可以应用到里边
但是结果是不对的,在我上边的例子里,如果这几个数字是字符型。2比10和100都要大

追问

唔,好奇怪啊…算了先这样吧,谢谢啦

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网