我试图在SQL中划分两列,然后我希望将结果放在一个带有截断结果的新列中,并添加一个小数点。我在这里试图让语法正确。
基本上,列X和Y是数字,我希望结果值是百分比。
X/NULLIF (Y,0) * 100 AS PERCENTAGE
我的结果最终为
X.XXXXXXXXXXX
理想情况下,我试图获得
的结果 X.XX%
但是我的语法
X/NULLIF(Y,0) * 100 + '$' AS PERCENTAGE
由于我无法将varchar类型转换为数字,因此无法工作。还有关如何获得截断结果。
我尝试过施法,但这不起作用
答案 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)) + '%'