IF,ELIF,ELSE在T

我正在SQL Server 2008中工作,并试图在我的代码的SELECT部分中使用IF, ELIF, ELSE语句。 我想要做的是以下几点:

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)

问题是,我不明白如何在SQL中执行IF,ELIF,ELSE类型的事务。 我试图搜索这种类型的例子,并且遇到了python例子......错误的语言,所以我在MSDBN网站上搜索了一下,没有看到这种工作,只是IF / ELSE。

谢谢


你想要一个CASE表达式。 CASE按顺序进行评估,并且第一个匹配项是查询中返回的内容。

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
...

SELECT 
    col = 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
FROM tbl
链接地址: http://www.djcxy.com/p/94355.html

上一篇: IF, ELIF, ELSE in T

下一篇: mssql which is the syntax 'if'