2

これが私の最後の質問です

select Codigo,  Indicador,
case when Indicador like '%Porcentaje%' then cast((round((([Valor Censo Elegido]/@cantidad)*100),0)) as varchar(50))+' %' else cast([Valor Censo Elegido]as varchar(50)) end as [Valor Censo Elegido],
case when Indicador like '%Porcentaje%' then cast((round((([Valor Censo Actual]/@cantidad)*100),0))as varchar(50))+' %' else cast([Valor Censo Actual]as varchar(50)) end as [Valor Censo Actual]
--case when Indicador like '%Porcentaje%' then round((([Valor Censo Elegido]/@cantidad)*100),0)  else ([Valor Censo Elegido]) end as [Valor Censo Elegido],
--case when Indicador like '%Porcentaje%' then round((([Valor Censo Actual]/@cantidad)*100),0) else ([Valor Censo Actual]) end as [Valor Censo Actual]

from  #unionfinal

しかし、大きな数字は何かを1.44409e + 006として変換し、インディケータに単語のporcentajeが含まれている場合、これが計算され、文字 '%'が追加され、変換されますが、このバグが発生しました

SQL 2005に取り組んでいます

4

1 に答える 1

2

最初に 10 進数にキャストし、次に VARCHAR にキャストします。

cast(cast((round(([Valor Censo Elegido]/@cantidad)*100),0) as decimal(50,0)) as varchar(50))+' %'
于 2012-03-21T23:56:22.690 に答える