Oracle按三个属性排列列表,但结果列表的第三个属性不按顺序显示
问题描述:
这是一个简单的练习,但我有点困惑。 我的问题是为什么一些厚度不按升序显示。Oracle按三个属性排列列表,但结果列表的第三个属性不按顺序显示
我的命令:
select MATERIALID, MATERIALNAME, MATERIAL, MATERIALSTANDARDPRICE, THICKNESS
from RAWMATERIAL_T
where MATERIAL in ('Cherry','Pine','Walnut')
order by MATERIAL, MATERIALSTANDARDPRICE, THICKNESS;
答
谢谢你这么much.I发现的数据类型为varchar。
+0
这意味着你明白它为什么会像它那样排序? –
+0
是的,非常感谢。我认为因为类型是varchar,Oracle只是比较第一个数字。 –
+0
不,Oracle将它们比作字符串,而不是数字。 –
请张贴[MCVE] - 实例表定义和采样数据,期望的输出。 THanks – OldProgrammer
该查询是100%正确的。所以答案肯定与你的设置有关......所以如果不知道更多关于它的答案是不可能的。例如:如果价格有小数,我可以产生这种奇怪的结果,但是在SQL \ * Plus(或者我用来与数据库交互的任何东西)中,我使用了“COLUMN MATERIALSTANDARDPRICE FORMAT 999”命令 - 那么价格会是所以看起来好像THICKNESS需要成为决胜局,当时没有平局。 – mathguy
THICKNESS是一个字符串,不是吗? –