希望各位大侠能帮忙。
我正在从具有可变数据的表中编写查询,特别是completed
可以具有值的列,1
或者3
该表也有两个 qty_ 字段QTYORDERED
和QTYSHIPPED
如果值3
在COMPLETED
则将QTYSHIPPED
包含一个值,如果该值是1
将QTYORDERED
有一个值。
我需要做的是在我的查询中创建一个只有一个QTY
可以告诉我如何在 SQL Server 中实现这一点的列
希望各位大侠能帮忙。
我正在从具有可变数据的表中编写查询,特别是completed
可以具有值的列,1
或者3
该表也有两个 qty_ 字段QTYORDERED
和QTYSHIPPED
如果值3
在COMPLETED
则将QTYSHIPPED
包含一个值,如果该值是1
将QTYORDERED
有一个值。
我需要做的是在我的查询中创建一个只有一个QTY
可以告诉我如何在 SQL Server 中实现这一点的列
这是一个简单的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)
但是,第一种形式更通用,为复杂逻辑提供了更大的灵活性。
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 ....