2012-09-13 35 views
0

我試圖將我的查詢結果轉換爲並按照小寫順序排列它們。但顯示時我需要保留所有原始案例(大寫和小寫)。如何使排序不區分大小寫,同時在下拉列表中顯示較低的大寫值

我的查詢看起來是這樣的 -

SELECT distinct (p.product_id) as product_id ,lcase(p.product_name) as product_name 
from library TL, product p 
WHERE TL.id = PL.id 
AND pL.product_id = p.product_id 
AND pL.product_id NOT IN (0) 
order by lcase(product_name) asc; 

但是,當我展示它改變了整個下拉值小寫。這不是我想要的。我只是希望它按小寫順序顯示。

我該怎麼辦?

據我所知,我的排序依據應該有相同的條件選擇是不是?

如何使排序不區分大小寫,而在下拉

回答

1

你可以試試這個顯示值的下+上的情況下,

SELECT product_id, product_name FROM (
    SELECT distinct (p.product_id) as product_id ,(p.product_name) as product_name, 
    lcase(p.product_name) as pname 
    from unified.techlibrary TL, unified.techlibraryprod PL, unified.product p, unified.contenttype CT 
    WHERE TL.id = PL.id 
    AND pL.product_id = p.product_id 
    AND tl.contenttype_id in (1,3) 
    AND pL.product_id NOT IN (0) 
) AS x order by x.pname 

希望這將有助於。

+0

順便說一下,我使用的是DB2。那麼我已經嘗試過了。我的查詢不接受order by子句中的lcase。它在執行查詢時拋出下面的錯誤。 ORDER BY子句中的以下位置中的表達式,或在「ORDER BY」子句中以「LCASE ...」開頭的表達式無效。原因代碼=「2」.. SQLCODE = -214,SQLSTATE = 42822,DRIVER = 3.63.108 – smiley

+0

檢查更新的答案,希望它會幫助:) –

+0

是的,你的新帖子幫了我。謝謝Yograj。 – smiley

相關問題