UPPER is a scalar string function that returns the input text with every alphabetic character converted to its uppercase form. Non alphabetic characters remain unchanged. The function is deterministic and collation-aware, meaning the exact result can depend on the database's locale and character set. UPPER is frequently used for case-insensitive searches, comparisons, data normalization, and display formatting. Because it creates a new string value, indexes on the original column are not used unless a functional or generated column index exists. Watch for performance impacts when calling UPPER on large text columns inside predicates or joins.
expression
(string or character expression) - The value to transform to uppercase.LOWER, INITCAP, COLLATE, ILIKE, UCASE, LCASE, UPPERCASE
SQL-92
Returns NULL. Any NULL input yields NULL output.
Yes. Most databases allow functional or generated column indexes. For example, in PostgreSQL: `CREATE INDEX idx_users_email_upper ON users (UPPER(email));`
Yes. Collation determines how characters map to uppercase. Edge cases like Turkish dotted I may produce different results under different locales.
Avoid it in large table predicates without supporting indexes, as it forces a full scan and may degrade performance.