永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-02-26 17:00
  • 提问者网友:半生酒醒
  • 2021-02-26 14:02
比如
create table EMP
(salary varchar(10) nou null)
这样的话在查询语句中可否
SELECt * from EMP
where salary>1000
这里的salary可以直接和1000比较大小吗?还是必须转换成INT之类的数据类型才行?
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-02-26 15:11
转成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型之类的再做比较吧
全部回答
  • 1楼网友:罪歌
  • 2021-02-26 15:39
你好,向你简单介绍下sql server 中的基本数据类型,希望对你有帮助: 1、int (integer) int (或integer)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个int 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。 2、smallint smallint 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个smallint 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。 3、tinyint tinyint数据类型存储从0 到255 之间的所有正整数。每个tinyint类型的数据占用1 个字节的存储空间。 4、bigint bigint 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之间的所有正负整数。每个bigint 类型的数据占用8个字节的存储空间。 5、real 数据类型 real数据类型可精确到第7 位小数,其范围为从-3.40e -38 到3.40e +38。 每个real类型的数据占用4 个字节的存储空间。 6、float float数据类型可精确到第15 位小数,其范围为从-1.79e -308 到1.79e +308。 每个float 类型的数据占用8 个字节的存储空间。 float数据类型可写为float[ n ]的形式。n 指定float 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个real 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是float 类型,用8 个字节存储它。 7、decimal decimal数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为decimal[ p [s] ]的形式,p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数(不包括小数点),缺省值为18; s 表示小数点后的位数,缺省值为0。 例如:decimal (15 5),表示共有15 位数,其中整数10 位,小数5。 位表4-3 列出了各精确度所需的字节数之间的关系。 8、numeric numeric数据类型与decimal数据类型完全相同。 9 char char 数据类型的定义形式为char[ (n) ]。 以char 类型存储的每个字符和符号占一个字节的存储空间。n 表示所有字符所占的存储空间,n 的取值为1 到8000, 即可容纳8000 个ansi 字符。若不指定n 值,则系统默认值为1。 若输入数据的字符数小于n,则系统自动在其后添加空格来填满设定好的空间。若输入的数据过长,将会截掉其超出部分。 10、nchar nchar数据类型的定义形式为nchar[ (n) ]。 它与char 类型相似。不同的是nchar数据类型n 的取值为1 到4000。 因为nchar 类型采用unicode 标准字符集(characterset)。 unicode 标准规定每个字符占用两个字节的存储空间,所以它比非unicode 标准的数据类型多占用一倍的存储空间。使用unicode 标准的好处是因其使用两个字节做存储单位,其一个存储单位的容纳量就大大增加了,可以将全世界的语言文字都囊括在内,在一个数据列中就可以同时出现中文、英文、法文、德文等,而不会出现编码冲突。 11、varchar varchar数据类型的定义形式为varchar [ (n) ]。 它与char 类型相似,n 的取值也为1 到8000, 若输入的数据过长,将会截掉其超出部分。不同的是,varchar数据类型具有变动长度的特性,因为varchar数据类型的存储长度为实际数值长度,若输入数据的字符数小于n ,则系统不会在其后添加空格来填满设定好的空间。 一般情况下,由于char 数据类型长度固定,因此它比varchar 类型的处理速度快。 12、nvarchar nvarchar数据类型的定义形式为nvarchar[ (n) ]。 它与varchar 类型相似。不同的是,nvarchar数据类型采用unicode 标准字符集(character set), n 的取值为1 到4000。 13 money money 数据类型的数据是一个有4 位小数的decimal 值,其取值从-2的63次方(-922,337,203,685,477.5808到2的63次方-1(+922,337,203,685,477.5807),数据精度为万分之一货币单位。money 数据类型使用8个字节存储。 14 smallmoney smallmoney数据类型类似于money 类型,但其存储的货币值范围比money数据类型小,其取值从-214,748.3648到+214,748.3647,存储空间为4 个字节。   参考资料: http://www.studyofnet.com/news/106.html 希望以上的回答对你有帮助!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯