求助SQL语句报错问题
select*from[ICCard_List]whereUser_iccardnotlike'EH%'andUser_iccard>=1andUser_iccard<=...
select * from [ICCard_List] where User_iccard not like 'EH%' and User_iccard >= 1
and User_iccard <= 100
当我执行以上语句后,数据库报了一行错误给我,内容如下:
消息 245,级别 16,状态 1,第 11 行
Conversion failed when converting the nvarchar value 'EH000001' to data type int.
请问该如何解决?数据库是SQL SERVER2014,User_iccard这个字段是IC卡号的意思,类型为nvarchar(100),我就是想查卡号为1-100的IC卡号,都把EH开头的卡号用not like语句去掉了,为什么还是报错误?还有User_iccard这个字段是主键,不知道有没有影响 展开
and User_iccard <= 100
当我执行以上语句后,数据库报了一行错误给我,内容如下:
消息 245,级别 16,状态 1,第 11 行
Conversion failed when converting the nvarchar value 'EH000001' to data type int.
请问该如何解决?数据库是SQL SERVER2014,User_iccard这个字段是IC卡号的意思,类型为nvarchar(100),我就是想查卡号为1-100的IC卡号,都把EH开头的卡号用not like语句去掉了,为什么还是报错误?还有User_iccard这个字段是主键,不知道有没有影响 展开
3个回答
展开全部
User_iccard not like 'EH%' 和 User_iccard >= 1 同一个字段。
错误也说了。User_iccard >= 1 and User_iccard <= 100 这个由于查询栏位哪里有字符串导致转换INT失败。
根据你的思路是先先把开头有EH的数据去掉,但条件只有 User_iccard 栏位,sql server的规则就会先判断 “>,=,<” 如果要实现你的写法,必须改成:
select * from (select * from [ICCard_List] where User_iccard not like 'EH%' )v where User_iccard >= 1
and User_iccard <= 100
错误也说了。User_iccard >= 1 and User_iccard <= 100 这个由于查询栏位哪里有字符串导致转换INT失败。
根据你的思路是先先把开头有EH的数据去掉,但条件只有 User_iccard 栏位,sql server的规则就会先判断 “>,=,<” 如果要实现你的写法,必须改成:
select * from (select * from [ICCard_List] where User_iccard not like 'EH%' )v where User_iccard >= 1
and User_iccard <= 100
追问
你说的好清楚哦!但是我按你的语句执行还是报那个错误,能不能在看看,虽然分给别人了
追答
奇怪了,如果你 not like 'EH%' 这个都不行,那么可能存在特殊字符,你改成:
select * from (select * from [ICCard_List] where User_iccard not like '%EH%' )v where User_iccard >= 1
and User_iccard <= 100
虽然这样不走索引,如果还是不行。你看看是不是User_iccard字段有其他字符串的值,导致字符串转整形报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cast(User_iccard as int )>=1 and cast(User_iccard as int )<=100 试试
更多追问追答
追问
按你说的把语句改成select * from [ICCard_List] where User_iccard not like 'EH%' and cast(User_iccard as int ) >= 1 and cast(User_iccard as int ) <= 100,还是报这个错误
追答
这个只能转换一下在比较了
select * from (select * from [ICCard_List] where case when User_iccard like 'EH%' then -1 else User_iccard end between 0 and100
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建者:a王正礼a1 内容简介2 成品目录3 创作背景4 后世影响5 流行注本 猜你关注
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询