【问题标题】:CASE statement for checking a field value用于检查字段值的 CASE 语句
【发布时间】:2013-07-16 13:26:07
【问题描述】:

希望你们能帮上忙。

我正在从具有可变数据的表中编写查询,特别是 completed 列,其值可以为 13 该表还有两个 qty_ 字段 QTYORDEREDQTYSHIPPED

如果COMPLETED 中的值为3,则QTYSHIPPED 将包含一个值,如果值为1,则QTYORDERED 将包含一个值。

我需要做的是在我的查询中创建一个只有 QTY 的列,有人可以告诉我如何在 SQL Server 中实现这一点

【问题讨论】:

    标签: sql sql-server if-statement case


    【解决方案1】:

    这是一个简单的case 声明:

    select (case when completed = 1 then QTYORDERED
                 when completed = 3 then QTYSHIPPED
            end) as QTY
    

    请注意,当completed 具有任何其他值时,这将返回 NULL。

    你也可以这样写:

    select (case completed when 1 then QTYORDERED
                           when 3 then QTYSHIPPED
            end)
    

    但是,第一种形式更通用,为复杂的逻辑提供了更大的灵活性。

    【讨论】:

      【解决方案2】:
      SELECT 
         CASE completed
            WHEN 1 THEN QTYORDERED 
            WHEN 3 THEN QTYSHIPPED
            ELSE 0  --Or add any logic when something goes wrong with "completed" value
         END as Quantity
      FROM ....
      

      【讨论】:

      • 感谢您的回答!
      猜你喜欢
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      相关资源
      最近更新 更多