2016-11-26 42 views
0

在我的工作,我有2个表:SQL:ORDER BY 2个标准不工作

  • 机场(SERIAL_NUMBER,名称,制造商,模型名称(这是一个外键到下一表),op_start_date,op_end日期
  • 模型(名字,一个number_rows,is_narrow,is_wide)

有了他们,我必须做出一个表中的信息为自己的名称,制造商,型号的飞机,如果他们是宽体或在特定情况下,我应该根据他们的制造商和他们的模型订购这个清单

我尝试的代码如下

SELECT maker, Airplanes.name, model_name, is_narrow, is_wide 
FROM Airplanes 
    JOIN Models ON model_name=Models.name 
ORDER BY maker, model_name; 

但是获得的表是这样的一个:

链接到图片:

enter image description here

正如你可以看到,它的命令由制造商,但不是模型。任何人都可以帮我解决这个问题吗?

+0

你确定你在'Order by'中运行了两列。我不认为这是可能的。你可以添加示例数据,我不认为它可以被复制 –

+0

@Prdp我试着运行2个其他列与相同的数据,并正确地排序它们。首先是列中提到的列,而在这些列中(如果它们具有相同的值),则按第二列排序 – MasterExcrement

+0

您使用的数据库(包括版本)是什么? –

回答

0

如果制造商中有不可见的字符,则可能发生这种情况。

尝试运行:

SELECT a.maker, count(*) 
FROM Airplanes a 
GROUP BY a.maker 
ORDER BY a.maker; 

查看是否maker “相同” 的价值变成了不止一次。

+0

它具有不同的值,特别是没有正确排序的值。 我该如何纠正它? – MasterExcrement

+0

@MasterExcrement。 。 。您需要修复该值。我不知道他们为什么不同,或者什么是正确的价值观。 “UPDATE”是一个解决数据修复的问题。 –

+0

是的,这是诀窍! 不知道那是什么“隐形人物”,但它现在正在工作!谢谢! – MasterExcrement