求解下ORACLE对varchar2的between处理方式。望解答!
用字符类型查询时,结果如下:SQL>select*fromNOSECTwherestatus=1and'4615217182627'betweenbeginnoanden...
用字符类型查询时,结果如下:
SQL>select * from NOSECT where status=1 and '4615217182627' between beginno and endno;
RECID BEGINNO ENDNO STATUS
----- ------------- ------------- ------
4 40000000000 49999999999 1
8014 4615217182000 4615217182999 1
2 rows selected.
ZHHSC@CSHSC >exit
用数字类型查询时结果如下:
SQL>select * from nosect where 4615217182627 between beginno and endno;
RECID BEGINNO ENDNO STATUS
----- ------- ----- ------
0 rows selected.
求解,为什么会出现这样的结果?BEGINNO和ENDNO均为varchar2类型。Oracle对varchar2的between会怎么处理的。谢谢! 展开
SQL>select * from NOSECT where status=1 and '4615217182627' between beginno and endno;
RECID BEGINNO ENDNO STATUS
----- ------------- ------------- ------
4 40000000000 49999999999 1
8014 4615217182000 4615217182999 1
2 rows selected.
ZHHSC@CSHSC >exit
用数字类型查询时结果如下:
SQL>select * from nosect where 4615217182627 between beginno and endno;
RECID BEGINNO ENDNO STATUS
----- ------- ----- ------
0 rows selected.
求解,为什么会出现这样的结果?BEGINNO和ENDNO均为varchar2类型。Oracle对varchar2的between会怎么处理的。谢谢! 展开
5个回答
展开全部
那你转换一下就好了,select * from nosect where to_char(4615217182627) between beginno and endno;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
varchar2型比较时,会按字符从第一个开始比较,按字符ascii顺序比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符的比较是通过asc码来比较的从第一个字符开始比较如果相等再比较下一个
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from NOSECT where status=1 and to_number(beginno) between 1 and 14615217182627
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AscII码比较的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询