中易网

求助SQL语句报错问题

答案:3  悬赏:80  
解决时间 2021-01-11 19:53
  • 提问者网友:爱了却不能说
  • 2021-01-11 11:47
求助SQL语句报错问题
最佳答案
  • 二级知识专家网友:蓝房子
  • 2021-01-11 13:16
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追问消息 102,级别 15,状态 1,第 17 行
Incorrect syntax near '100'.
执行你的这句有语法错误,漏了个括号补哪里?追答select * from [ICCard_List] where case when User_iccard like 'EH%' then -1 else User_iccard end between 0 and100
全部回答
  • 1楼网友:三千妖杀
  • 2021-01-11 15:33
创建者:a王正礼a1 内容简介2 成品目录3 创作背景4 后世影响5 流行注本 猜你关注
  • 2楼网友:行路难
  • 2021-01-11 14:44
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追问你说的好清楚哦!但是我按你的语句执行还是报那个错误,能不能在看看,虽然分给别人了追答奇怪了,如果你 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字段有其他字符串的值,导致字符串转整形报错。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息