我正在尝试格式化我所拥有的SQL案例的结果,但是我不知道该怎么做。
SELECT ProductID, ProductName, WholesalePrice, UnitPrice as 'Current Price',
CASE
WHEN CategoryID = 1 or CategoryID = 4 THEN UnitPrice * 1.2
WHEN CategoryID = 6 or CategoryID = 8 THEN UnitPrice * 1.15
WHEN SupplierID = 2 THEN UnitPrice * 1.08
ELSE UnitPrice
END AS 'New Price'
我得到的结果是
Product ID | ProductName | WholesalePrice | Current Price | New Price
4 Thing 19.11 22.00 23.7600000
我正在尝试仅将其格式化为Currency,但不确定。我希望它看起来像这样
Product ID | ProductName | WholesalePrice | Current Price | New Price
4 Thing 19.11 22.00 23.76
在这种情况下,我正在与Microsoft SQL Server Management Studio合作。
答案 0 :(得分:1)
明确的CAST
应该起作用。
SELECT ProductID, ProductName, WholesalePrice, UnitPrice as [Current Price],
CAST
(
CASE
WHEN CategoryID = 1 or CategoryID = 4 THEN UnitPrice * 1.2
WHEN CategoryID = 6 or CategoryID = 8 THEN UnitPrice * 1.15
WHEN SupplierID = 2 THEN UnitPrice * 1.08
ELSE UnitPrice
END
AS decimal(9,2)) AS [New Price]
9的精度是一个猜测。您可能需要针对数据进行调整。但是,小数点2会在小数点右边放两个位置。
顺便说一句,我调整了非标准列别名(包含空格)以使用SQL Server首选的方括号方法。您可以选择使用双引号,但是表示字符串文字的单引号已在某些版本中弃用,应该避免使用。