SQL 中 or 的使用个数有限制吗?

zhangle861010 2008-02-25 01:14:25
SELECT ZZ5TaskId, ZZ1ImageFile
FROM RecResult1
WHERE (APrice1 BETWEEN 2000 AND 1150)

可以执行~

SELECT ZZ5TaskId, ZZ1ImageFile
FROM RecResult1
WHERE (APrice1 BETWEEN 2000 AND 1150) OR
(APrice2 BETWEEN 2100 AND 1100) OR
(APrice3 BETWEEN 3400 AND 1210) OR
(APrice4 BETWEEN 4000 AND 1200) OR
(APrice5 BETWEEN 4000 AND 1250) OR
(APrice6 BETWEEN 3200 AND 1100) OR
(BPrice1 BETWEEN 2000 AND 1150) OR
(BPrice2 BETWEEN 2100 AND 1100) OR
(BPrice3 BETWEEN 3400 AND 1210) OR
(BPrice4 BETWEEN 4000 AND 1200) OR
(BPrice5 BETWEEN 4000 AND 1250) OR
(BPrice6 BETWEEN 3200 AND 1100) OR
(CPrice1 BETWEEN 2000 AND 1150) OR
(CPrice2 BETWEEN 2100 AND 1100) OR
(CPrice3 BETWEEN 3400 AND 1210) OR
(CPrice4 BETWEEN 4000 AND 1200)

就报错~将 varchar 值 '320O' 转换为数据类型为 int 的列时发生语法错误。

如何解决!!!
在线等!!!
...全文
477 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果过长会有“服务器在编译过程中遇到堆栈溢出。”错误讯息,但是LZ那么短,肯定是不会有事情的。你自己测试一下单纯用OR,应该在1.2万个Or的时候查询分析器会抛出错误讯息。
sinxy 2008-02-27
  • 打赏
  • 举报
回复
应该没有限制

我也写过类似LZ的脚本,用程序拼的SQL脚本大概50 -60 K 都没有问题的
  • 打赏
  • 举报
回复
LZ写错了。

应该是3200 ,而不是 320O ,最后一个字符应该是零而不是欧。
sp4 2008-02-26
  • 打赏
  • 举报
回复
呵呵
conannb 2008-02-25
  • 打赏
  • 举报
回复
类型转换
zefuzhang2008 2008-02-25
  • 打赏
  • 举报
回复
你的between and的前后数据好怪异,大数在前
rainbowliuliang 2008-02-25
  • 打赏
  • 举报
回复
1楼的方法进行转换 然后再比较
dawugui 2008-02-25
  • 打赏
  • 举报
回复
'320O'

是320 + 字母的O

不是数字的3200
rainbowliuliang 2008-02-25
  • 打赏
  • 举报
回复
支持楼上
kk19840210 2008-02-25
  • 打赏
  • 举报
回复
你的字段是用 字符型保存的吧 里面有非数字的字符串 转换的时候出现错误


最好转换后比较
jinjazz 2008-02-25
  • 打赏
  • 举报
回复
没有限制,最好用cast转换一下数据类型 cast(APrice6 as varchar(10)) between .. and ..

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧