1

希望各位大侠能帮忙。

我正在从具有可变数据的表中编写查询,特别是completed可以具有值的列,1或者3该表也有两个 qty_ 字段QTYORDEREDQTYSHIPPED

如果值3COMPLETED则将QTYSHIPPED包含一个值,如果该值是1QTYORDERED有一个值。

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

4

2 回答 2

7

这是一个简单的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)

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

于 2013-07-16T13:27:49.997 回答
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 ....
于 2013-07-16T13:33:57.727 回答