Приведите 2 десятичных значения, только если валюта не 0,0000 - PullRequest
1 голос
/ 04 февраля 2020

Я пытаюсь напечатать

Условие 1 : если валюта отображается как 0,00, удалите десятичные точки (.00)

Ex: 0.00 -> 0

Условие 2 : Если валюта выглядит больше 0,00, тогда оставьте десятичные разряды в двух местах (так, ######. 00)

12.46 -> 12.46 
0.00 -> 0
13.96 -> 13.96

Я пробовал следующее, но АКТЕР не будет работать:

CASE 
WHEN CAST([Money] AS NUMERIC(10,2)) = 0.00 THEN CAST([Money] AS INT)
ELSE CAST([Money] AS NUMERIC(10,2)) END BankPile, 

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Вы не можете иметь столбец, который содержит как десятичный, так и целочисленный типы. Я бы рекомендовал просто возвращать десятичные значения и устанавливать формат в слое отображения (форма, отчет, веб-страница и т. Д. c.)

1 голос
/ 04 февраля 2020

Если вы заботитесь о таких деталях, то вам нужно привести результат в движение:

(case when CAST([Money] AS NUMERIC(10,2)) = 0.00 then '0'
      else cast(cast([Money] as numeric(10, 2)) as varchar(255))
 end)
...