2017-10-17 100 views
0

这是一个简单的练习,但我有点困惑。 我的问题是为什么一些厚度不按升序显示。Oracle按三个属性排列列表,但结果列表的第三个属性不按顺序显示

the practice

我的命令:

select MATERIALID, MATERIALNAME, MATERIAL, MATERIALSTANDARDPRICE, THICKNESS 
from RAWMATERIAL_T 
where MATERIAL in ('Cherry','Pine','Walnut') 
order by MATERIAL, MATERIALSTANDARDPRICE, THICKNESS; 

part of the result table

+0

请张贴[MCVE] - 实例表定义和采样数据,期望的输出。 THanks – OldProgrammer

+0

该查询是100%正确的。所以答案肯定与你的设置有关......所以如果不知道更多关于它的答案是不可能的。例如:如果价格有小数,我可以产生这种奇怪的结果,但是在SQL \ * Plus(或者我用来与数据库交互的任何东西)中,我使用了“COLUMN MATERIALSTANDARDPRICE FORMAT 999”命令 - 那么价格会是所以看起来好像THICKNESS需要成为决胜局,当时没有平局。 – mathguy

+1

THICKNESS是一个字符串,不是吗? –

回答

0

谢谢你这么much.I发现的数据类型为varchar。

DataType

+0

这意味着你明白它为什么会像它那样排序? –

+0

是的,非常感谢。我认为因为类型是varchar,Oracle只是比较第一个数字。 –

+0

不,Oracle将它们比作字符串,而不是数字。 –

相关问题