在select查询中添加多个列

时间:2010-05-06 11:36:42

标签: sql-server tsql

场景如下:

SomeTable {A int,B int,C int}

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

假设数据是

10 16 12
14 15 19

选择应返回:20,28 *。

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

1 个答案:

答案 0 :(得分:1)

CASE是您唯一的方式:

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)