SQL:在将 varchar 值 '' 转换成数据类型 int 时失败。

SELECTS.memberNameFROMStudentasS,MovableasMWHERES.memberIDin(SELECTL.memberIDFROMLoan... SELECT S.memberName
FROM Student as S, Movable as M
WHERE
S.memberID in (SELECT L.memberID
FROM Loan as L
WHERE L.itemNo in (SELECT C.itemNo
FROM Category as C
WHERE C.itemName = 'Camera')) AND M.model='SQ-29';
代码如上,着实不知道怎么改,求提拔
展开
 我来答
帐号已注销
2021-06-03 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

SQL语句中的值跟数据库表中字段的数据类型不匹配。

要是转为varchar是可以转回来的,但是转为了char类型,所以就转不回来了,因为char类型有个长度,不足这个长度的会用空格填充,所以一个数字多了很多个空格后就不是合法的数值格式了。

结果再 用相同语句想把类型转回smallint,就报错在将 varchar 值 '*' 转换成数据类型 int 时失败,注意 :字符varchar转数据类型int和数据类型int转字符vachar的语句是不同的。

varchar特点:

1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)。

2、使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间。

3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。

4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉。

5、最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了。

以上内容参考:百度百科-varchar

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
肥博裕姬孟
2019-01-06 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:735万
展开全部
你要是转为varchar应该是可以转回来的,但是你是将他转为了char类型,所以就转不回来了,因为char类型有个长度,不足这个长度的会用空格填充,所以一个数字多了很多个空格后就不是合法的数值格式了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2018-10-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885366
团长

向TA提问 私信TA
展开全部
先不说你这个报错,单是你这个语句里,S和M两个表的关系在哪里?靠什么关联?
你这个报错大概是因为那几个in的类型不一致,你检查下S.memberID、L.memberID 还有L.itemNo和C.itemNo的字段类型是不是一样?
追问
多谢提醒,刚刚看了下发现要把S和M链起来实在太麻烦,干脆重新建了一个表,那个问题已经修复了,我把数据改为了纯int。。。虽然我依然很疑惑我没有任何一个int的数据但是为什么会这样。。
追答
这个也有可能是数据引起的,看不到数据不太容易判断
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神不错哦
2018-10-30 · TA获得超过709个赞
知道小有建树答主
回答量:458
采纳率:79%
帮助的人:63.6万
展开全部
各种嵌套233,厉害了,
他报这个错,当然是你类型问题啦,
你把不是纯数字的让int查询。
更多追问追答
追问
emmmm我不太懂我哪里让int查询了
追答
S.memberID   L.itemNo   C.itemName  M.model这几个里面你看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式