小编Mik*_* O.的帖子

选择比较两列的案例

如果记录的某个其他值为true,我想要一个使用两个值/列中较大值的查询.

我正在尝试获取报告帐户.不幸的是,DB通常将Cash的值存储在一个名为的列中HoldingQty,而对于其他每种类型的持有(股票,债券,共同基金),它将其存储在一个名为的列中Qty.

问题在于,有时候现金的价值Qty只存储在,而有时则存在于QtyHoldingQty.显然有时候它只是HoldingQty如上所述存储.

基本上我希望我的选择陈述说"如果证券是现金,看看数量和持有数量,并给我更大的价值.否则,如果证券不是现金只是给我数量".

我如何在T-SQL中编写它?这是我的努力:

SELECT 
    h.account_name, h.security_name, h.security_type, h.price,
    (CASE:
         WHEN security_type = 'cash' 
            THEN (WHEN h.qty > h.holdingqty 
                     THEN h.qty 
                  ELSE h.holdingqty)
         ELSE qty) as quantity, 
     h.total_value
FROM 
    holdings h
WHERE
    ...........
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server select case-when

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

case-when ×1

select ×1

sql ×1

sql-server ×1

t-sql ×1