title: Using Nested IF ELSE statements in sql
body: <p>When any one of the following conditions is met, I want the code to go to the next execution step: </p>
  
  <ol>
  <li>First Name, Last Name and DOB : all three are not blank</li>
  <li>ID and DOB are not blank</li>
  <li>SSN and DOB are not blank</li>
  <li>ID and Group Number are not blank</li>
  </ol>
  
  <p>Below is the code I have. When I run it by providing First Name, Last Name and DOB (condition 1 is satisfied), it still fails saying condition 4 is not met. Can someone tell me what am I doing wrong? </p>
  
  <pre><code>IF ( ( @FirstName IS NULL 
          OR Len(Ltrim(@FirstName)) = 0 ) 
       AND ( @LastName IS NULL 
              OR Len(Ltrim(@LastName)) = 0 ) 
       AND ( @DOB IS NULL ) ) 
    BEGIN 
        INSERT INTO @ValidationError 
                    (errormessage) 
        VALUES      ( 'first name, last name and Date of Birth must be specified.' 
        ) 
    END 
  ELSE 
    BEGIN 
        IF ( @DOB IS NULL 
             AND @Id IS NULL ) 
          BEGIN 
              INSERT INTO @ValidationError 
                          (errormessage) 
              VALUES      ( 'Date of Birth and Id must be specified.' ) 
          END 
        ELSE 
          BEGIN 
              IF ( @DOB IS NULL 
                   AND @SSN IS NULL ) 
                BEGIN 
                    INSERT INTO @ValidationError 
                                (errormessage) 
                    VALUES      ( 'Date of Birth and SSN must be specified.' ) 
                END 
              ELSE 
                BEGIN 
                    IF ( @Id IS NULL 
                         AND @GroupNumber IS NULL ) 
                      BEGIN 
                          INSERT INTO @ValidationError 
                                      (errormessage) 
                          VALUES      ( 'Id and Group Number must be specified.' ) 
                      END 
                END 
          END 
    END 
  </code></pre>