IF, ELIF, ELSE in T-SQL

sql-server-2008, t-sql

Solution

You want a `CASE` expression. `CASE` evaluates in order and the first match is what is returned in the query.

SELECT
  CASE WHEN BO.VALUE < BO.REFERENCELOWERLIMIT 
           THEN (BO.VALUE - BO.REFERENCELOWERLIMIT)
       WHEN BO.VALUE BETWEEN BO.REFERENCELOWERLIMIT AND BO.REFERENCEUPPERLIMIT
           THEN BO.VALUE
       ELSE  (BO.REFERENCEUPPERLIMIT - BO.VALUE)
  END as MyColumnAlias
...

Problem

I am working in SQL Server 2008 and trying to use a `IF, ELIF, ELSE` statement in the `SELECT` section of my code. What I want to do is the following: ``` IF BO.VALUE < BO.REFERENCELOWERLIMIT THEN (BO.VALUE - BO.REFERENCELOWERLIMIT) #I WANT THIS TO BE NEGATIVE ELSE IF BO.REFERENCELOWERLIMIT <= BO.VALUE <= BO.REFERENCEUPPERLIMIT THEN BO.VALUE ELSE (BO.REFERENCEUPPERLIMIT - BO.VALUE) ``` The problem is that I do not understand how to do a IF, ELIF, ELSE type transaction in SQL. I have tried to search for this type of example and came across python examples...wrong language so I did a search on the MSDBN site and did not see this sort of work, just IF/ELSE. Thank You

Original source

Related problems