Discussions
Categories
- 196.7K All Categories
- 2.2K Data
- 235 Big Data Appliance
- 1.9K Data Science
- 449.8K Databases
- 221.5K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 549 MySQL Community Space
- 477 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 532 SQLcl
- 4K SQL Developer Data Modeler
- 186.8K SQL & PL/SQL
- 21.3K SQL Developer
- 295.4K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.1K Development Tools
- 104 DevOps
- 3.1K QA/Testing
- 645.9K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 153 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 17 Java Essentials
- 158 Java 8 Questions
- 85.9K Java Programming
- 79 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.2K Java SE
- 13.8K Java Security
- 203 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 394 LiveLabs
- 37 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.6K Other Languages
- 2.3K Chinese
- 170 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 230 Portuguese
query on where condition - upper(rtrim(column)) = ?

663506
Member Posts: 26
Hi,
I have a table StudentGrades. This table has an index on the column "grade" of type varchar2.
The values of "grade" column contain string values like: 'A', 'a', 'A ', 'a ', 'A ', i.e. mixed cases and containing white spaces at times.
If I run a query below, will it use the index on grade?
select * from StudentGrades where upper(rtrim(grade)) = ?
where ? is an input parameter from the program and the value has been trimmed and converted to uppercase.
Thanks,
Jason
I have a table StudentGrades. This table has an index on the column "grade" of type varchar2.
The values of "grade" column contain string values like: 'A', 'a', 'A ', 'a ', 'A ', i.e. mixed cases and containing white spaces at times.
If I run a query below, will it use the index on grade?
select * from StudentGrades where upper(rtrim(grade)) = ?
where ? is an input parameter from the program and the value has been trimmed and converted to uppercase.
Thanks,
Jason
Tagged:
Answers
-
no the index wont be used. you need to create a function based index for that.
-
Can you point me to a page that explains function based index and how to. I haven't used this before. Thanks.
-
http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/data_acc.htm#i9946
-
You can create a function-based index, but it seems the root of the problem is the database design. Why are the grade values, free-form? It would make more sense that all possible grades are stored in a separate table and referenced by a key (i.e. normalization).
This discussion has been closed.