== Why is this an issue?

This rule applies whenever an ``++IF++`` statement is followed by one or 

more ``++ELSEIF++`` statements; the final ``++ELSEIF++`` should be followed by an ``++ELSE++`` statement.


The requirement for a final ``++ELSE++`` statement is defensive programming. 

The ``++ELSE++`` statement should either take appropriate action or contain 

a suitable comment as to why no action is taken. This is consistent with the 

requirement to have a final ``++ELSE++`` clause in a ``++CASE++``

statement. 

=== Noncompliant code example

[source,sql]
----
IF my_variable = 0 THEN
  do_something;
ELSIF my_variable = 1 THEN
  do_something_else;
END IF;
----

=== Compliant solution

[source,sql]
----
IF my_variable = 0 THEN
  do_something;
ELSIF my_variable = 1 THEN
  do_something_else;
ELSE
  -- Nothing has to be done.
  NULL;
END IF;
----


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
