【问题标题】:How to make sort case insensitive while displaying the lower+upper case of values in the dropdown如何在下拉列表中显示值的小写+大写时使排序不区分大小写
【发布时间】:2012-09-13 08:11:23
【问题描述】:

我正在尝试将我的查询结果转换为并根据小写以 asc 顺序对其进行排序。但是在显示时我需要保留所有原始大小写(小写和大写)。

我的查询看起来像这样 -

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;

但是当我显示它时,它会将整个下拉值更改为小写。这不是我想要的。我只是希望它按照小写的顺序显示。

我该怎么做?

据我所知,我的orderby应该和select的条件一样吧?

如何在下拉列表中显示小写+大写值时不区分大小写

【问题讨论】:

    标签: sorting sql-order-by case-insensitive lowercase


    【解决方案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
    

    希望它会有所帮助。

    【讨论】:

    • 顺便说一句,我使用的是 DB2。好吧,我已经试过了。我的查询在 orderby 子句中不接受 lcase。当我执行查询时,它会引发以下错误。以下位置的 ORDER BY 子句中的表达式或“ORDER BY”子句中以“LCASE...”开头的表达式无效。原因代码 = "2".. SQLCODE=-214, SQLSTATE=42822, DRIVER=3.63.108
    • 是的,你的新帖子帮助了我。谢谢 Yograj。
    猜你喜欢
    • 2019-02-06
    • 2017-10-29
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多