oracle怎么排序不准啊?求高手解答
strSQLL:='INSERTINTONIU(QID,IDE,ZH,GAO,DI,IG)SELECT*FROMNIIORDERBYQIDASC,ZHASC';execu...
strSQLL:='INSERT INTO NIU(QID,IDE,ZH,GAO,DI,IG) SELECT * FROM NII ORDER BY QID ASC,ZH ASC';
execute immediate strSQLL;
以上是在SQL Developer里写的代码,表NIU和表NII字段名字和数量都是一样的,我想做的就是讲NII表里的记录数按照QID升序,QID值相同的情况下将ZH升序,按照这个排序规则将数据再写入NIU中,但是我最后查询的时候发现不准,我表中有几百万个数据,字段QID和ZH值都不是唯一的,我发现前面的排序都准确,但是当到几万条数据之后就开始乱了,有时候QID值大的反而在前面,求高手解答。 展开
execute immediate strSQLL;
以上是在SQL Developer里写的代码,表NIU和表NII字段名字和数量都是一样的,我想做的就是讲NII表里的记录数按照QID升序,QID值相同的情况下将ZH升序,按照这个排序规则将数据再写入NIU中,但是我最后查询的时候发现不准,我表中有几百万个数据,字段QID和ZH值都不是唯一的,我发现前面的排序都准确,但是当到几万条数据之后就开始乱了,有时候QID值大的反而在前面,求高手解答。 展开
4个回答
展开全部
数字和字符大小的比较规则是不一样的,确定这两个字段的类型,我很纳闷,你这种排序后插入有意义么?只要对新表查询时随便对一个字段排序查询你这种排序顺序不就打乱了?
追问
QID和ZH的格式都是NUMBER型
追答
order by QID,ZH;试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果QID是字符格式就会发生值大的在前面,比如10000在11前面,从左往右一个个字符对比排列的,SELECT时用转成数字格式再排序就行了
追问
QID和ZH的格式都是NUMBER型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习中。。。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
QID和ZH字段的类型是什么
追问
QID和ZH的格式都是NUMBER型
追答
有错误截图吗,发一个上来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |