用于检查字段值的CASE语句

Jus*_*ell 1 sql sql-server if-statement case

希望你的家伙可以提供帮助.

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

如果值为3in,COMPLETED那么QTYSHIPPED将包含一个值,如果值为1,QTYORDERED则将具有一个值.

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

Gor*_*off 7

这是一个简单的case陈述:

select (case when completed = 1 then QTYORDERED
             when completed = 3 then QTYSHIPPED
        end) as QTY
Run Code Online (Sandbox Code Playgroud)

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

你也可以这样写:

select (case completed when 1 then QTYORDERED
                       when 3 then QTYSHIPPED
        end)
Run Code Online (Sandbox Code Playgroud)

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