使用DB2检索不区分大小写的SQL Select查询

时间:2019-10-08 08:43:33

标签: db2 db2-luw

在sql select查询下面,从表中检索数据。

SELECT DISTINCT  FRUIT_NAME,FRUIT_ID  FROM Fruits ORDER BY FRUIT_NAME ASC

我使用了“ ORDER BY FRUIT_NAME ASC”,它根据Assending顺序来获取结果,如下所示。

结果:

苹果

香蕉

芒果

杏子

蓝莓

我想要一个不区分大小写的搜索结果,如下所示。

苹果

杏子

香蕉

蓝莓

芒果

我不想使用upper()或lower(),因为它可能会影响较大表数据的性能。

而且COLLATE NOCASE不适用于db2。以下是我使用时遇到的错误 在db2中的选择SQL查询中收集NOCASE。

1) [Code: -104, SQL State: 42601]  ILLEGAL SYMBOL "COLLATE".

是否可以使用db2从sql select查询中检索不区分大小写的数据?

1 个答案:

答案 0 :(得分:0)

您可以使用LOWER函数进行订购:

SELECT DISTINCT FRUIT_NAME, FRUIT_ID
FROM Fruits
ORDER BY LOWER(FRUIT_NAME);

当然,这意味着ORDER BY步骤不能使用索引。如果不管大小写需要快速定购,可以考虑将列的全小写形式作为一种选择来存储。