2016-11-26 36 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