sql - 如何在 SQL Server 的 View 中使用 else-if 条件?

标签 sql tsql sql-server-2008-r2

我知道可以使用 CASE 语句实现 if 条件:

CASE
    WHEN <condition>
        x
    ELSE
        z
END

但是如何针对 else-if 条件执行此操作?

像这样的东西(伪代码):

CASE
    WHEN <condition>
        x
    ELSE-IF <condition>
        y
    ELSE
        z
END

我现在的代码:

CREATE VIEW [dbo].[v_myview1]
AS
    SELECT 
        ci.aDate, ci.Currency, ci.lim, ci.LimitUS,
        pa.Date as AmtDate,
        pa.Payment as AmtPayment,
        CASE 
            WHEN (ci.aDate - pa.Date) < 0 THEN ci.LimitUS
            --ELSE IF
            --WHEN (ci.lim - pa.Payment) < 0 THEN 'a'
            ELSE 'b'
        END AS Estimate,
    FROM
        dbo.Amt pa
    JOIN 
        dbo.CrInfo ci ON ci.pr_key = pa.pr_key
    JOIN
        dbo.rates tr ON rt.Currency = ci.Currency 
    WHERE 
        ci.mk = 2

最佳答案

你可以像这样使用第二种情况:

CASE 
WHEN (ci.aDate - pa.Date) < 0 THEN  ci.LimitUS
WHEN (ci.lim - pa.Payment) < 0 THEN 'a'
ELSE 'b'

关于sql - 如何在 SQL Server 的 View 中使用 else-if 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33142347/

相关文章:

mysql - 我怎样才能优化他的sql查询

sql - 转换为 float 时,空字符串应为 NULL

tsql - 如何在SQL Server中向表添加新的标识列?

java - 将base64异常字符串编码和解码为sql server 2008 r2

mysql - 我想为我的 asp.net 获取 SQL 查询

SQL Server外键约束的好处

SQL Server 2012 根据表 2 中的速率更新表速率

sql-server - 创建虚拟索引 - 仅用于计划

sql - 无法使用多个版本的 SQL Server 从 SQL Server 读取 Excel 文件

sql - 选择时间戳大于时区的位置