TRIM, LTRIM, RTRIM in SQL - Time & Space Complexity
When using TRIM, LTRIM, or RTRIM functions in SQL, it's helpful to understand how their execution time changes as the input string grows.
We want to know how the time to remove spaces depends on the length of the text.
Analyze the time complexity of the following SQL snippet.
SELECT TRIM(' example ') AS trimmed_text,
LTRIM(' example ') AS left_trimmed,
RTRIM(' example ') AS right_trimmed;
This code removes spaces from both ends, left end, and right end of the string respectively.
Look for repeated steps inside these functions.
- Primary operation: Scanning characters from the start or end of the string to find spaces.
- How many times: Up to once per character at the string edges until a non-space is found.
The time depends on how many spaces are at the edges of the string.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | Up to 10 checks if all spaces |
| 100 | Up to 100 checks if all spaces |
| 1000 | Up to 1000 checks if all spaces |
Pattern observation: The work grows linearly with the number of spaces at the edges, not the total string length.
Time Complexity: O(n)
This means the time to trim grows in a straight line with the number of characters checked at the string edges.
[X] Wrong: "TRIM functions always take the same time no matter the string length."
[OK] Correct: The functions scan characters from the edges until they find a non-space, so more spaces mean more work.
Understanding how simple string functions scale helps you reason about performance in real queries and shows you think about efficiency.
"What if the string had no spaces at all? How would the time complexity of TRIM change then?"
Practice
LTRIM do to a string?Solution
Step 1: Understand LTRIM function purpose
LTRIM removes spaces only from the left side (start) of a string.Step 2: Compare with other trim functions
Unlike RTRIM (right side) or TRIM (both sides), LTRIM targets only the start.Final Answer:
Removes spaces only from the start (left side) of the string -> Option DQuick Check:
LTRIM = left side trim [OK]
- Confusing LTRIM with RTRIM
- Thinking LTRIM removes spaces from both sides
- Assuming LTRIM removes spaces inside the string
name in SQL?Solution
Step 1: Identify function to remove trailing spaces
RTRIM removes spaces from the right (end) side of a string.Step 2: Check syntax correctness
SELECT RTRIM(name) FROM table; is valid SQL syntax for this purpose.Final Answer:
SELECT RTRIM(name) FROM table; -> Option CQuick Check:
RTRIM trims right side spaces [OK]
- Using LTRIM instead of RTRIM for trailing spaces
- Using TRIM which removes both sides, not just trailing
- Using non-existent function REMOVE_TRAIL
SELECT TRIM(' Hello World '); be?Solution
Step 1: Understand TRIM function behavior
TRIM removes spaces from both the start and end of the string.Step 2: Apply TRIM to the given string
Spaces before and after 'Hello World' are removed, but spaces inside remain.Final Answer:
'Hello World' -> Option AQuick Check:
TRIM removes spaces both sides [OK]
- Expecting spaces inside the string to be removed
- Confusing TRIM with LTRIM or RTRIM
- Including quotes incorrectly in output
SELECT LTRIM(name) FROM users; but it does not remove spaces from the end of the names. What is the issue?Solution
Step 1: Understand LTRIM function limitation
LTRIM removes spaces only from the left (start) side of a string.Step 2: Identify why trailing spaces remain
Spaces at the end (right side) are not removed by LTRIM, so they remain.Final Answer:
LTRIM only removes spaces from the start, not the end -> Option BQuick Check:
LTRIM trims left side only [OK]
- Assuming LTRIM removes spaces from both sides
- Using quotes incorrectly around column names
- Confusing TRIM and LTRIM functions
products with a column code that sometimes contains spaces at both ends. You want to update the table to remove all leading and trailing spaces from code. Which SQL statement correctly does this?Solution
Step 1: Understand how to remove spaces from both ends
TRIM removes spaces from both the start and end of a string in one call.Step 2: Evaluate other options
LTRIM removes only leading spaces, RTRIM only trailing spaces. Neither alone removes both sides.Step 3: Check for invalid functions
REMOVE_SPACES is not a valid SQL function.Final Answer:
UPDATE products SET code = TRIM(code); -> Option AQuick Check:
TRIM removes both sides spaces [OK]
- Using LTRIM which removes only leading spaces
- Using RTRIM which removes only trailing spaces
- Using invalid function REMOVE_SPACES
Ready to prove it?
Pass the test and this pattern moves unknown
