В качестве другой альтернативы уже опубликованным ответам, вы можете использовать replicate()
и sign()
, чтобы поставить '-'
перед ним, когда число отрицательное. Затем concat()
'$'
и абсолютное значение (с использованием abs()
).
SELECT concat(replicate('-', -sign(moneyvalue)), '$', abs(moneyvalue))
FROM money;
дб <> скрипка
Имейте в виду, что replicate()
возвращает NULL
для нулевой или отрицательной длины. В concat()
это не проблема, поскольку concat()
преобразует нули в пустые строки. Но если вместо этого вы используете оператор конкатенации +
, вам придется выполнить это преобразование самостоятельно (используя coalesce()
или isnull()
и т. Д.).