SELECT
Topics,
[22] as Assgn1,
[19] as Assgn2,
[16],
[17],
[18],
case when [17] = 0 or [17] IS null then [18]*100 else (isnull([18],0) - [17])/[17]*100 end AS PercentageImprove
from
(
SELECT
fltTotalMark as [TMark],
intAssessmentID as [assid] ,
vchTopic as [Topics]
from ManageAssessment
WHERE intUserID=174
)AS S
pivot
(
SUM(TMark)
FOR assid IN ([22], [19], [16], [17], [18])
)AS s
这是我生成表的sql代码, 表输出:
Topics |Assgn1 |Assgn2 | 16 | 17 |PercentageImprove|
NULL |8 3| NULL| 3 | 0 |-100
Numbers |NULL NULL| 2 |NULL | 2 |200
Numbers(Unitary Method)| NULL| NULL| 1 | NULL |0
Occupations (people) | NULL| NULL| NULL| 1 | -100
这里PercentageImprove的百分比值我希望显示-100%,-100值显示为红色和null我想显示为 - ,所以任何人都帮我解决这个问题.. 谢谢..
答案 0 :(得分:0)
在案例陈述结尾附加百分比符号。
CAST ( case when [17] = 0 or [17] IS null then [18]*100 else (isnull([18],0) - [17])/[17]*100 end AS VARCHAR) + '%' AS PercentageImprove
另外不要忘记将从CASE语句返回的整数值强制转换为varchar,否则sql server将尝试将整数添加到百分比符号并抛出错误。
就红色的着色值而言,这是在显示数据时在前端完成的。