0 sql
分组,我需要从列中的任何负数中删除" - "以获取某些记录号.但是Sum需要*.01来获得正确的格式.我尝试使用替换,但它被*.01抛出.下面是我的语法.
CASE WHEN SUM(ExtPrice) *.01 < 0 AND RecordNum BETWEEN 4000 AND 5999
THEN REPLACE(SUM(ExtPrice) *.01,'-','')
ELSE SUM(ExtPrice) *.01
END AS Totals
Run Code Online (Sandbox Code Playgroud)
例如,SUM(ExtPrice) *.01 在一列中给出了-5051.32,但是当我使用上面的case语句时,我得到5050另一个例子-312.67,我得到310使用案例.任何建议或更好的方法,非常感谢.
您可以使用ABS功能获取数字的正值.例如:
ABS(-123.445) /* this equals 123.445 */
Run Code Online (Sandbox Code Playgroud)
所以你可以用你的CASE语句替换:
CASE WHEN SUM(ExtPrice) < 0 AND RecordNum BETWEEN 4000 AND 5999
THEN ABS(SUM(ExtPrice) *.01)
ELSE SUM(ExtPrice) *.01
END AS Totals
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |