在将 varchar 值 '借阅次数' 转换成数据类型 int 时失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在将 varchar 值 '借阅次数' 转换成数据类型 int 时失败相关的知识,希望对你有一定的参考价值。

use tushuguan
go
alter table TSB
add constraint jy1 check ('借阅次数'>=1 and '借阅次数'<=3)

消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 '借阅次数' 转换成数据类型 int 时失败。
(出现错误后 我把TSB表中的varchar的都改成了char 执行 出现这个错误,把借阅次数改成varchar还是出现这个错误)

附图的3个截图分别是varchar、char、varchar

第一步:varchar里存的是数字,转换为int没问题

第二步:转换为char时,如果是char10,而数字位数不足10位,就会自动补空格。不出错的唯一情况就是所有的数字都是10位,存在char10里没有补空格

第三步:又转换为varchar,但空格还在,转换int依然不行。看有没有空格,直接双击数字即可

 

参考技术A use tushuguan
go
alter table TSB
add constraint jy1 check (借阅次数>=1 and 借阅次数<=3)

单引号去掉呢?追问

不行~~

追答

use tushuguan
go
alter table TSB
add constraint jy1 check (借阅次数>='1' and 借阅次数<='3')

 

1和3上加单引号呢、再不行的话

在将 varchar 值 '1,2' 转换成数据类型 int 时失败。

select username from sq_user where uid in (select friends from sq_friend where username='ceshi')
怎么解决?
在线等
friend字段是varchar类型 内容是1,2

我好像又碰到 ceshi,估计我上一个回答是不是同一个人。取相互关注列表的。在我之前回的两个都写得不好。你用这个吧。
SELECT UserName
FROM dbo.sq_user AS U WITH(NOLOCK)
INNER JOIN dbo.sq_friend AS F WITH(NOLOCK)
ON U.uid = CONVERT(INT, F.friends)

WHERE F.UserName = 'ceshi'
参考技术A select username from sq_user
where (select ',' + friends + ',' from sq_friend where username='ceshi') LIKE '%,' + uid + ',%'追问

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

追答

select username from sq_user
where
(select ',' + friends + ',' from sq_friend where username='ceshi') LIKE '%,' + cast (uid as varchar(20)) + ',%'

本回答被提问者和网友采纳
参考技术B 使用like 来写,ORACLE写法
select username from sq_user where (select friends from sq_friend where username='ceshi') like '%'||uid||‘%’;追问

'|' 附近有语法错误。

追答

SQL SERVER的数据库?

追问

嗯嗯

追答

select username from sq_user where (select friends from sq_friend where username='ceshi') like '%'+cast (uid as varchar(20))+‘%’;

追问

但是最后的百分号的引号是错的 输入法不对 改成英文的就好了 哈哈

以上是关于在将 varchar 值 '借阅次数' 转换成数据类型 int 时失败的主要内容,如果未能解决你的问题,请参考以下文章

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

在将 varchar 值 '1,2' 转换成数据类型 int 时失败。

SQL用交叉报表时报错:在将 varchar 值 'then result else 0 end)' 转换成数据类型 int 时失败。

SQL数据库里面显示在将 varchar 值 'S' 转换成数据类型 int 时失败。 下面是存储过程 麻烦看下 是否有错

500 : 服务器错误DataTableSQL Error: 在将 varchar 值 'A03' 转换成数据类型 int 时失败。啥问题?

C语言 图书借阅管理系统