2012-10-19 44 views
0

我有以下問題可能(我希望)有一個標準的解決方案。
我有一個Java應用程序,與數據庫交互並動態構建SQL字符串。
到目前爲止,我猜平常的東西。
Occusionally我需要對數據進行排序,我使用ORDER By。我猜目前爲止很清楚。
問題:我有時需要對沒有實際數據的列進行排序,但是需要對實際數據的關鍵字進行簡短的字符串排序。
我的意思是:
SELECT FROM MYTable WHERE MyTable.col1 = 'A' ORDER BY MyTable.col2 ASC
col2有值:ABBYCY它返回排序的,但對我沒用,因爲這些鍵從一個屬性的實際值文件,並因此最終的結果是沒有排序。
以與當前工作方式一致的方式解決此問題的最佳方法是什麼?使用java從sql中排序?

+0

你能澄清一下你的情況究竟是什麼?你在一些網格中顯示這些數據,或者是什麼(以及如何)? – Less

+0

有多少條線?我很少=>與SortedMap的做,如果有很多,創建SQL臨時表的屬性文件 – Aubin

+0

@Less:是的,他們都顯示在一個表通過映射到值 – Jim

回答

5

如果數據不在數據庫,那麼你的選擇是,要麼在Java中排序呢,還是首先從屬性文件中的數據插入到一個臨時表中,然後加入到該表並執行ORDER BY在SQL 。如果這是一個頻繁發生的操作,那麼可以考慮將這些屬性放入永久表中。

+0

1)是否創建了一個由所有數據庫支持的臨時表?2)我認爲這也可以通過java語句完成,對吧? – Jim

+0

它在Oracle,MySql,SQL Server,Sybase中受支持。我不確定任何其他人,如果需要,可以使用永久表 - 只需使用唯一ID鍵入即可,以防止進程衝突。是的,您可以使用JDBC來創建臨時表和插入數據。 – jalynn2