sql查询语句问题,求助

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:30:19
我查询一个列的平均值,在建表的时候我用的 char()作为数据类型
然后我查这个列的时候 提示我平均值运算不能以 char数据类型进行运算
我想知道 char varchar integer samallint
什么样情况用哪种啊 最好能举举例子 拜托了 大大们

char varchar都是定义字符类型,后者的最大长度比前者大,同时相同定义下他们占的空间不一样.如char(4)和varchar(4),char(4)只要不输入大于4个字节的字符他都默认这个字符占了4个字节的空间,输入t和tt他都认为是占了4个字节,而varchar(4)确是灵活的,你只要不输入大于4个字节的他都会根据实际情况来判断,输入t和tt,他们分别占1字节和2字节.

integer samallint 都是定义整型数字类型的,前者的可取最大值大于后者.
你上面之所以会出错,那是因为AVG()里面必须是数字类型的数据

看了希望你有所了解!

数值的时候最好用int或decimal等类型的,如姓名等内容最好用varchar类型的,你当前的这个问题,可以这样来实现

select avg(cast(字段 as int)) from 表

以上,希望对你有所帮助!

char varchar integer samallint 短数值型,这是最基础知道,字段类型网上一大堆

求平均值是数值运算,当然得采用integer类型,char是字符型

求平均值 必须是数值吧,不是数是不能求平均值的
char 字符型 ,所以不能求平均值

为了能求平均值,你应该使用int(整数) float(有小数点的数)money (钱)等类型来定义你的字段

你用的是哪种数据库呢?smallint 如果我没有猜错的话,你用的是mysql吧,

char 一般都是不可变长度。

varchar 是可变长度的。

integer 整形

smallint 一般比integer数值范围较小。

简单说这些吧,因为不同的数据库都不太一样,你可以针对特定数据库搜索一下。

char和varchar类型,是针对字符进行操作的。
可以转化成数值型,前提条件是,存储的字符为数值,否则没有办法转换的。常用varchar类型。

integer和smallint针对