场景如下:
SomeTable {A int,B int,C int}
我需要选择并添加公式:A + 25%B + 50%C。如果是十进制,则向上舍入到下一个完整数字并显示星号和预算总和的spcae。在添加之前,每列都需要四舍五入。
假设数据是
10 16 12
14 15 19
选择应返回:20,28 *。
我正在考虑使用case语句,但它变得非常脏。
有什么想法?
答案 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)