2008-10-20 42 views
2

我有一個讓我困惑不已的問題。當我運行對Access數據庫以下查詢:表訪問在Access查詢中是否斷開Order By子句?

SELECT * 
FROM PreferredSpacer INNER JOIN SpacerThickness ON PreferredSpacer.SpacerTypeID = SpacerThickness.SpacerTypeID 
ORDER BY PreferredSpacer.UnitTypeID DESC 

(UnitTypeID字段是文本型)

結果不出來排序作爲一個正常的人所期望的。它們在單元類型ID字段(在以'C'和'M'開始的條目之間有以'W'開始的條目')處於全部位置。如果我刪除了連接並試圖在PreferredSpacer表(其中包含UnitTypeID字段)中排序記錄,我就得到了預期的結果,所以我必須假設連接與它有關。

然而,在同一時間,我真的不能想象一個工具作爲ubiquitus,因爲訪問可能有一個相當基本的查詢這樣一個明顯的問題。如果我做錯了什麼 - 但是 - 我不能看到它可能是什麼。

任何援助將不勝感激。謝謝。

+0

哪個版本的訪問? – 2008-10-20 16:08:28

+0

如果您發佈可能有所幫助的表格定義... – 2008-10-20 16:16:20

回答

0

SpacerThickness是否有UnitTypeID列?如果是這樣,select中的「*」可能意味着它在PreferredSpacer.UnitTypeID上進行排序,但選擇了SpacerThickness.UnitTypeID。嘗試直接選擇PreferredSpacer.UnitTypeID。

0

不幸的是,UnitTypeID字段只存在於PreferredSpacer表中。

0

我沒有看到任何可能是錯誤的查詢。

可能連接的表大小比訪問願意處理的大嗎?

0

我試圖重寫它,你說:[編輯:這是一個已被刪除帖子的迴應,但內容仍然有效]

SELECT PreferredSpacer.UnitTypeID 
FROM PreferredSpacer, SpacerThickness 
WHERE PreferredSpacer.SpacerTypeID = SpacerThickness.SpacerTypeID 
ORDER BY PreferredSpacer.UnitTypeID DESC 

我仍然得到相同的結果。如果這可能有助於任何人的話,這是一些結果的C & P.

CPATA 
CPATA 
CFRSA 
CFRSA 
CFRSA 
CFRSA 
CFRSA 
CFDOT 
CFDOT 
CFDOT 
CFDOT 
CFDOT 
CFDOAVSL 
CFDOAVSL 
CFDOAVSL 
CFDOAVSL 
CFDOAVSL 
CFDOA 
CFDOA 
CFDOA 
CFDOA 
CFDOA 
CFDIAVSL 
CFDIAVSL 
CFDIAVSL 
CFDIAVSL 
CFDIAVSL 
CFDIA 
CFDIA 
CFDIA 
CFDIA 
CFDIA 
CFDAT 
CFDAT 
CFDAT 
CFDAT 
CFDAT 
CBPATA 
CBPATA 
CBPATA 
CBPATA 
CBPATA 
CBFRSA 
CBFRSA 
CBFRSA 
CBFRSA 
CBFRSA 
CAPURE 
CAPURE 
CAPURE 
CAPURE 
CAPURE 
CADGU 
CADGU 
CADGU 
CADGU 
CADGU 
CADGS 
CADGS 
CADGS 
CADGS 
CADGS 
COTR 
COTR 
COTR 
COTR 

正如您所看到的,結果似乎沒有遵循任何總體有意義的順序。

1

那是COTR還是CzeroTR?否則,它看起來按要求降序排序。 YESNO?

-1

Google說:

不能在文本,ntext或圖像場的執行ORDER(這些領域實際上是指針)。

它關於MSSQL,但我想它是一樣的訪問。

0

對於Remou:它是O而不是零,但即使是在整個地方還有更多的條目int完整的結果集(我只是在這裏粘貼了一部分來說明,整個事情是約1,000行)。

To dummy:Sql具有varchar類型,它將用於此類型的數據。但Acccess只有文本數據類型才能涵蓋長字符串和短字符串。此外,按順序執行工作如果我只在PreferredSpacer表(它是包含UnitTypeID字段的表)上執行它,它只是當我做聯接,它分崩離析。

2

我想通了。我們客戶用來生成訪問數據庫的工具錯誤地將SQL中的varchar字段轉換爲訪問中的備註字段(而不是文本,就像我們的工具一樣),並且備註字段沒有正確排序。對我來說,Access似乎很奇怪,但是它會默默地遵循它,而不是試圖表明一種備忘錄不會按預期工作,但這就是生活。

感謝大家的回覆。