在SQL中使用加号(+)显示正结果

Spo*_*rki 6 sql formatting number-formatting

我有以下查询:

    SELECT 
      CONVERT(DECIMAL(11,1),SUM(Column/1000*-1)) AS NAME,
    FROM
      Table
Run Code Online (Sandbox Code Playgroud)

我有"/ 1000*-1"的原因是我希望结果以千位为单位显示并反转(负值为正,反之亦然)只有一位小数.

我怎样才能得到正值在它们前面有一个加号(+),就像负值有一个破折号( - )?

ash*_*awg 7

您可以在函数中使用分号分隔的多部分字符串FORMAT(有点像您在 Microsoft Excel 中使用自定义数字格式)。

数字格式最多可以包含三部分格式代码,以分号分隔。这些代码部分按顺序定义了正数、负数和零值的格式:

<POSITIVE>;<NEGATIVE>;<ZERO>

例子:

FORMAT(@YourValue,'+0.0;-0.0')

(改编自


我通常在显示符号时也隐藏零+/-所以我使用格式化字符串:'+0;-0;'''

SELECT FORMAT(+5,'+0;-0;''') --returns: +5
SELECT FORMAT(-5,'+0;-0;''') --returns: -5
SELECT FORMAT(-5,'+0;-0;''') --returns: <empty string>


要显示零,您可以使用格式化字符串: '+0;-0;0'


适用于:


更多信息:


jue*_*n d 6

SELECT 
  case 
     when CONVERT(DECIMAL(11,1),SUM(Column/1000*-1)) >= 0 
     then concat('+', CONVERT(DECIMAL(11,1),SUM(Column/1000*-1))) 
     else CONVERT(DECIMAL(11,1),SUM(Column/1000*-1)) 
  end AS NAME
FROM Table
Run Code Online (Sandbox Code Playgroud)