代码之家  ›  专栏  ›  技术社区  ›  A G

在选择查询中添加多列

  •  1
  • A G  · 技术社区  · 15 年前

    场景如下:

    某些表A int、B int、C int

    我需要选择和添加公式:A+25%B+50%C。如果是十进制,四舍五入到下一个完整数字,并显示一个星号和一个spcae加和。每列在添加前都需要四舍五入。

    假设数据是

    10月16日12
    14月15日19

    选择应返回:20,28*。

    我正在考虑使用case语句,但它变得非常肮脏。
    有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   KM.    15 年前

    案例是你唯一的方法:

    DECLARE @YourTable table (A int, B int, C int)
    SET NOCOUNT ON
    INSERT @YourTable VALUES (10, 16, 12 )
    INSERT @YourTable VALUES (14, 15, 19 )
    SET NOCOUNT OFF
    
    SELECT 
        CASE
            WHEN ROUND(A+.25*B+C*.5,0)<A+.25*B+C*.5 THEN
                CONVERT(varchar(10),CONVERT(int,ROUND(A+.25*B+C*.5,0))+1)+' *' 
            ELSE CONVERT(varchar(10),CONVERT(int,ROUND(A+.25*B+C*.5,0))) 
        END
        FROM @YourTable
    

    输出:

    ------------
    20
    28 *
    
    (2 row(s) affected)