在SQL中划分两个数字列并使用varchar结果创建新列

时间:2016-02-26 16:09:15

标签: sql sql-server

我试图在SQL中划分两列,然后我希望将结果放在一个带有截断结果的新列中,并添加一个小数点。我在这里试图让语法正确。

基本上,列X和Y是数字,我希望结果值是百分比。

     X/NULLIF (Y,0) * 100 AS PERCENTAGE

我的结果最终为

X.XXXXXXXXXXX

理想情况下,我试图获得

的结果
 X.XX%

但是我的语法

X/NULLIF(Y,0) * 100 + '$' AS PERCENTAGE 
由于我无法将varchar类型转换为数字,因此

无法工作。还有关如何获得截断结果。

我尝试过施法,但这不起作用

1 个答案:

答案 0 :(得分:1)

您可以将str()cast()用于小数。出于您的目的,您需要一个字符串,因此str()更合适:

SELECT str(X/NULLIF(Y, 0) * 100, 5, 2) + '%'

请注意,这会使结果保持一致,因此您可能会考虑:

SELECT cast(cast(100 * X/NULLIF(Y, 0) as decimal(5, 2)) as varchar(255)) + '%'