如何在 SQL SELECT 语句中舍入此结果
How to round this result in SQL SELECT statement
我需要一种方法来舍入从以下语句返回的结果:
CASE
WHEN 0 <> (sod.XDFFLT - sod.DUEQTY)
THEN (sod.XDFFLT - sod.DUEQTY)
ELSE ''
END AS Balance
它位于此 SELECT 语句中。
SELECT TOP (10000) som.ORDNUM
,som.NAME
,som.ADDR1
,som.ADDR2
,som.CITY
,som.STATE
,som.ZIPCD
,som.CNTRY
,som.CUSTPO
,COALESCE(cpd.CUSTPRT, sod.PRTNUM) AS CustomerSku
,cpd.CUSTPRT
,som.CUSTID
,sod.PRTNUM
,ps.PMDES1
,sod.CURQTY
,sod.DUEQTY
,sod.XDFFLT
,sod.SHPQTY
,CASE
WHEN 0 <> (sod.XDFFLT - sod.DUEQTY)
THEN (sod.XDFFLT - sod.DUEQTY)
ELSE ''
END AS Balance
,sod.LINNUM + sod.DELNUM AS LineDelNum
,CASE
WHEN 12 <= len(sod.UDFREF)
THEN substring(sod.UDFREF, 9, 4)
ELSE sod.UDFREF
END AS Skid
将 CASE 替换为:
,CASE
WHEN 0 <> (sod.XDFFLT - sod.DUEQTY)
THEN ROUND((sod.XDFFLT - sod.DUEQTY), <number_of_decimals>)
ELSE NULL
END AS Balance
确保将 <number_of_decimlas>
替换为您希望数字四舍五入到的适当小数位数。
- 大于 0 将 return 一个在逗号(小数点)右侧四舍五入的数字
- 小于0会return一个在逗号(小数点)左边四舍五入的数字
此外,不要在案例的 ELSE
子句中使用空白字符串,因为这会导致数据类型不匹配并产生错误(CASE
必须 return 一个 单一 数据类型)。因此,最好将其替换为 NULL
,因为您的第一个条件总是 return 一个数字。
我需要一种方法来舍入从以下语句返回的结果:
CASE
WHEN 0 <> (sod.XDFFLT - sod.DUEQTY)
THEN (sod.XDFFLT - sod.DUEQTY)
ELSE ''
END AS Balance
它位于此 SELECT 语句中。
SELECT TOP (10000) som.ORDNUM
,som.NAME
,som.ADDR1
,som.ADDR2
,som.CITY
,som.STATE
,som.ZIPCD
,som.CNTRY
,som.CUSTPO
,COALESCE(cpd.CUSTPRT, sod.PRTNUM) AS CustomerSku
,cpd.CUSTPRT
,som.CUSTID
,sod.PRTNUM
,ps.PMDES1
,sod.CURQTY
,sod.DUEQTY
,sod.XDFFLT
,sod.SHPQTY
,CASE
WHEN 0 <> (sod.XDFFLT - sod.DUEQTY)
THEN (sod.XDFFLT - sod.DUEQTY)
ELSE ''
END AS Balance
,sod.LINNUM + sod.DELNUM AS LineDelNum
,CASE
WHEN 12 <= len(sod.UDFREF)
THEN substring(sod.UDFREF, 9, 4)
ELSE sod.UDFREF
END AS Skid
将 CASE 替换为:
,CASE
WHEN 0 <> (sod.XDFFLT - sod.DUEQTY)
THEN ROUND((sod.XDFFLT - sod.DUEQTY), <number_of_decimals>)
ELSE NULL
END AS Balance
确保将 <number_of_decimlas>
替换为您希望数字四舍五入到的适当小数位数。
- 大于 0 将 return 一个在逗号(小数点)右侧四舍五入的数字
- 小于0会return一个在逗号(小数点)左边四舍五入的数字
此外,不要在案例的 ELSE
子句中使用空白字符串,因为这会导致数据类型不匹配并产生错误(CASE
必须 return 一个 单一 数据类型)。因此,最好将其替换为 NULL
,因为您的第一个条件总是 return 一个数字。