Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of IF-ELSIF-ELSE control flow in PostgreSQL?
It allows you to execute different blocks of code based on conditions, choosing which code to run depending on whether conditions are true or false.
Click to reveal answer
beginner
Write the basic syntax of IF-ELSIF-ELSE in a PostgreSQL PL/pgSQL block.
IF condition1 THEN -- statements ELSIF condition2 THEN -- statements ELSE -- statements END IF;
Click to reveal answer
beginner
Can you have multiple ELSIF branches in an IF statement in PostgreSQL?
Yes, you can have as many ELSIF branches as needed to check multiple conditions in sequence.
Click to reveal answer
intermediate
What happens if none of the IF or ELSIF conditions are true and there is no ELSE branch?
No code inside the IF block runs, and the program continues after the END IF statement.
Click to reveal answer
intermediate
How does IF-ELSIF-ELSE differ from CASE statements in PostgreSQL?
IF-ELSIF-ELSE is used for conditional branching with boolean expressions, while CASE is used for comparing an expression against multiple values. IF-ELSIF-ELSE can handle complex conditions more flexibly.
Click to reveal answer
Which keyword starts an IF-ELSIF-ELSE control flow block in PostgreSQL?
ABEGIN
BIF
CCASE
DLOOP
✗ Incorrect
The IF keyword starts the conditional control flow block.
What keyword is used to check an additional condition after IF in PostgreSQL?
AELSIF
BENDIF
CWHEN
DELSE
✗ Incorrect
ELSIF is used to check another condition if the previous IF or ELSIF was false.
What keyword ends an IF-ELSIF-ELSE block in PostgreSQL?
AEND
BFINISH
CEND IF
DSTOP
✗ Incorrect
END IF marks the end of the IF-ELSIF-ELSE control flow block.
If none of the IF or ELSIF conditions are true, which block runs?
AELSE block
BELSIF block
CIF block
DNo block runs
✗ Incorrect
The ELSE block runs if all IF and ELSIF conditions are false.
Can you omit the ELSE branch in an IF-ELSIF-ELSE statement?
AOnly in PostgreSQL 14+
BNo, it is mandatory
COnly if there is one ELSIF
DYes, it is optional
✗ Incorrect
The ELSE branch is optional; if omitted and no conditions match, no code runs.
Explain how IF-ELSIF-ELSE control flow works in PostgreSQL and give a simple example.
Think about checking conditions one by one and running code for the first true condition.
You got /5 concepts.
Describe the difference between IF-ELSIF-ELSE and CASE statements in PostgreSQL.
Consider when you want to check complex conditions versus matching values.
You got /4 concepts.
Practice
(1/5)
1.
What is the purpose of the ELSIF keyword in PostgreSQL's IF control flow?
easy
A. To test an additional condition if the previous IF condition is false
B. To end the IF statement
C. To execute code unconditionally
D. To start a loop inside the IF block
Solution
Step 1: Understand the role of IF and ELSIF
The IF keyword tests the first condition. If it is false, ELSIF allows testing another condition.
Step 2: Differentiate ELSIF from other keywords
ELSIF is not for ending or unconditional execution; it is for additional conditional checks.
Final Answer:
To test an additional condition if the previous IF condition is false -> Option A
Quick Check:
ELSIF = additional condition test [OK]
Hint: Remember: ELSIF adds more conditions after IF [OK]
Common Mistakes:
Thinking ELSIF ends the IF block
Confusing ELSIF with ELSE
Using ELSIF without a preceding IF
2.
Which of the following is the correct syntax to close an IF statement in PostgreSQL?
easy
A. END;
B. ENDIF;
C. END IF;
D. FINISH IF;
Solution
Step 1: Recall PostgreSQL block ending syntax
PostgreSQL requires END IF; to close an IF block explicitly.
Step 2: Compare options
ENDIF; and FINISH IF; are invalid. END; alone closes other blocks but not IF.
Final Answer:
END IF; -> Option C
Quick Check:
Close IF with END IF; [OK]
Hint: Always end IF blocks with END IF; in PostgreSQL [OK]
Common Mistakes:
Using END; alone to close IF
Writing ENDIF; without space
Forgetting to close IF blocks
3.
Consider this PostgreSQL code snippet inside a function:
IF score >= 90 THEN
result := 'A';
ELSIF score >= 80 THEN
result := 'B';
ELSIF score >= 70 THEN
result := 'C';
ELSE
result := 'F';
END IF;
If score is 85, what will be the value of result after execution?
medium
A. 'A'
B. 'F'
C. 'C'
D. 'B'
Solution
Step 1: Evaluate conditions in order for score = 85
Check if 85 >= 90? No. Then check 85 >= 80? Yes.
Step 2: Assign result based on first true condition
Since 85 >= 80 is true, result is set to 'B'. Remaining conditions are skipped.
Final Answer:
'B' -> Option D
Quick Check:
85 >= 80 = true, so result = 'B' [OK]
Hint: Check conditions top to bottom; first true sets the result [OK]
Common Mistakes:
Choosing 'A' because 85 is close to 90
Ignoring order of conditions
Assigning 'C' or 'F' incorrectly
4.
Identify the error in this PostgreSQL IF block:
IF value > 10 THEN
RAISE NOTICE 'Value is large';
ELSIF value < 5
RAISE NOTICE 'Value is small';
ELSE
RAISE NOTICE 'Value is medium';
END IF;
medium
A. Using ELSE without condition
B. Missing THEN after ELSIF value < 5
C. Incorrect use of RAISE NOTICE
D. Missing END IF;
Solution
Step 1: Check syntax of each condition
The ELSIF line lacks the required THEN keyword after the condition.
Step 2: Confirm other parts are correct
END IF; is present, RAISE NOTICE is valid, and ELSE does not take a condition.
Final Answer:
Missing THEN after ELSIF value < 5 -> Option B
Quick Check:
ELSIF must have THEN [OK]
Hint: Always write THEN after IF and ELSIF conditions [OK]
Common Mistakes:
Omitting THEN after ELSIF
Adding condition after ELSE
Forgetting END IF;
5.
You want to write a PostgreSQL function that returns 'Positive', 'Negative', or 'Zero' based on an integer input num. Which IF-ELSIF-ELSE block correctly implements this logic?
-- Options:
A) IF num > 0 THEN RETURN 'Positive';
ELSIF num < 0 THEN RETURN 'Negative';
ELSE RETURN 'Zero';
END IF;
B) IF num > 0 THEN RETURN 'Positive';
ELSEIF num < 0 THEN RETURN 'Negative';
ELSE RETURN 'Zero';
END IF;
C) IF num > 0 THEN RETURN 'Positive';
ELSIF num < 0 THEN RETURN 'Negative';
ELSEIF num = 0 THEN RETURN 'Zero';
END IF;
D) IF num > 0 THEN RETURN 'Positive';
IF num < 0 THEN RETURN 'Negative';
ELSE RETURN 'Zero';
END IF;
hard
A. Correct use of IF, ELSIF, ELSE with proper syntax
B. Uses invalid keyword ELSEIF instead of ELSIF
C. Uses ELSEIF after ELSE which is invalid
D. Nested IF without closing first IF properly
Solution
Step 1: Check keywords and structure
Correct use of IF, ELSIF, ELSE with proper syntax uses IF, ELSIF, and ELSE correctly with proper endings.
Step 2: Identify errors in other options
Uses invalid keyword ELSEIF instead of ELSIF uses invalid ELSEIF. Uses ELSEIF after ELSE which is invalid uses ELSEIF after ELSE. Nested IF without closing first IF properly nests IF without closing properly.
Final Answer:
Correct use of IF, ELSIF, ELSE with proper syntax -> Option A
Quick Check:
Use IF, ELSIF, ELSE; no ELSEIF [OK]
Hint: Use ELSIF, not ELSEIF; close IF with END IF; [OK]