Sql 当>;在WHEN子句中使用

Sql 当>;在WHEN子句中使用,sql,Sql,当我在when子句中没有“>”符号时,此查询运行正常,但当提议日期晚于“2017-04-10 00:00:00.000”时,我需要此查询。不确定为什么在将>添加到when子句时出现语法错误 SELECT *, CASE ProposalDate WHEN > '2017-04-10 00:00:00.000' THEN (OrderTotal - ProposalWholesalePrice) + (ProposalWholesalePri

当我在when子句中没有“>”符号时,此查询运行正常,但当提议日期晚于“2017-04-10 00:00:00.000”时,我需要此查询。不确定为什么在将>添加到when子句时出现语法错误

SELECT *,
    CASE ProposalDate WHEN > '2017-04-10 00:00:00.000'
        THEN (OrderTotal - ProposalWholesalePrice) +
             (ProposalWholesalePrice * 1.02)
        ELSE OrderTotal    
    END "New_OrderTotal"
FROM webservices.dbo.DT_Open_Orders_Baseprice
WHERE ProposalSerialNumber = '639036'

SQL
CASE
表达式:

  • 简单的
    CASE
    表达式,以及
  • 搜索的
    大小写
    表达式
简单的
案例
,即当…
不能与比较运算符一起使用时,
案例建议日期;您需要搜索的
案例

SELECT
    *
,   CASE
        WHEN ProposalDate > '2017-04-10 00:00:00.000'
        THEN (OrderTotal - ProposalWholesalePrice) + (ProposalWholesalePrice * 1.02)
        ELSE OrderTotal
    END "New_OrderTotal"
FROM webservices.dbo.DT_Open_Orders_Baseprice
WHERE ProposalSerialNumber = '639036'

你有没有试过在列名前加上“WHEN”? 例如:

SELECT *, CASE WHEN ProposalDate > '2017-04-10 00:00:00.000'

THEN (OrderTotal - ProposalWholesalePrice) + (ProposalWholesalePrice * 1.02) ELSE OrderTotal

END "New_OrderTotal" FROM webservices.dbo.DT_Open_Orders_Baseprice WHERE ProposalSerialNumber = '639036'

简写的
case
语法不使用任何运算符,只使用
=
条件计算的一系列值。如果要使用其他运算符,则必须使用完整的
大小写
语法:

SELECT *, 
       CASE WHEN ProposalDate > '2017-04-10 00:00:00.000' 
            THEN (OrderTotal - ProposalWholesalePrice) + 
                 (ProposalWholesalePrice * 1.02) 
           ELSE OrderTotal 
       END "New_OrderTotal"
FROM   webservices.dbo.DT_Open_Orders_Baseprice 
WHERE  ProposalSerialNumber = '639036'

Case when x>y then
Case x when y then
。您使用的是哪个数据库?