Форматировать результаты для случая SQL? - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь отформатировать результаты имеющегося у меня случая 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, если это имеет значение.

1 Ответ

1 голос
/ 05 мая 2020

Должен быть явный 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 сервера. квадратные скобки. Вы можете использовать двойные кавычки, но одинарные кавычки, обозначающие строковые литералы, в настоящее время не рекомендуются для нескольких версий, и их следует избегать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...