希望你的家伙可以提供帮助。
我正在从一个表中编写查询,该表具有可变数据,特别是completed
列,其值可以为1
或3
,该表还有两个qty_字段{{1 }和QTYORDERED
如果QTYSHIPPED
中的值为3
,则COMPLETED
将包含值,如果值为QTYSHIPPED
,则1
将包含值。
我需要做的是在我的查询中创建一个只有QTYORDERED
的列,有人可以告诉我如何在SQL Server中实现这一点
答案 0 :(得分: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)
但是,第一种形式更为通用,为复杂逻辑提供了更大的灵活性。
答案 1 :(得分: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 ....