Sql 四舍五入函数查询2到3个参数?
我试图在此查询中查找每个不同用户的收入,但似乎正在运行此错误Sql 四舍五入函数查询2到3个参数?,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我试图在此查询中查找每个不同用户的收入,但似乎正在运行此错误 select concat('$',format(cast(round(sum(total)/count(distinct(customers))),2) as int),N'N','en-US') from table 我的错误: round函数需要2到3个参数 我猜你的意思是: SELECT CONCAT('$',FORMAT(CAST(ROUND(SUM(Total)/COUNT(DISTINCT customers),2
select concat('$',format(cast(round(sum(total)/count(distinct(customers))),2)
as int),N'N','en-US')
from table
我的错误:
round函数需要2到3个参数
我猜你的意思是:
SELECT CONCAT('$',FORMAT(CAST(ROUND(SUM(Total)/COUNT(DISTINCT customers),2) AS int),N'N'),'en-US')
FROM [table];
但是,实际上,您需要担心表示层中值的格式(不需要有格式
和CONCAT
)
还有,为什么ROUND({expr},2)
然后CAST({expr}AS int)
?为什么不ROUND({expr},0)
?我想你的意思是:
SELECT CONCAT('$',FORMAT(CAST(ROUND(SUM(Total)/COUNT(DISTINCT customers),2) AS int),N'N'),'en-US')
FROM [table];
但是,实际上,您需要担心表示层中值的格式(不需要有格式
和CONCAT
)
还有,为什么
ROUND({expr},2)
然后CAST({expr}AS int)
?为什么不舍入({expr},0)
?例如,使用2作为舍入的长度
round(sum(total)/count(distinct(customers)),2)
例如,使用2作为圆的长度
round(sum(total)/count(distinct(customers)),2)
从表中选择concat(“$”,格式(cast(舍入(总和)/计数(不同的(客户)),2)作为int),N'N','en-US'),您需要添加您想要舍入的数量,例如,这里我使用了2
格式
可以自行舍入。例如选择格式(2349345.439,'C','en-US'))
直接将值格式化为货币,并带有分隔符。选择格式(2349345.439,'N2','en-US')
四舍五入为两位小数。选择格式(2349345.439,'0.00','en-US')
给出的值不带数千个分隔符。如果您真的想截断数字(正如您的转换所暗示的那样)然后,ROUND
2位先取整是没有用的…@Jake Wagner-如果你需要取整的结果-小心点-select格式(convert(int,ROUND(2.900,2)),'N2','en-US')
和select格式(ROUND(2.900,0),'N2',en-US')
分别产生不同的结果-2.00和3.00
(“$”,格式(cast(round(sum(total)/count(distinct(customers)),2)as int,N'N',en-US')从表中您需要添加您想要舍入的数量,例如,这里我使用的2format
可以自行舍入。例如选择格式(2349345.439,'C','en-US'))
直接将值格式化为货币,并带有分隔符。选择格式(2349345.439,'N2','en-US')
四舍五入为两位小数。选择格式(2349345.439,'0.00','en-US')
给出的值不带数千个分隔符。如果您真的想截断数字(正如您的转换所暗示的那样)然后,先四舍五入
到两位数是没有用的…@Jake Wagner-如果你需要四舍五入的结果-要小心-选择格式(转换(int,ROUND(2.900,2)),'N2','en-US')
和选择格式(ROUND(2.900,0),'N2',en-US')
分别产生不同的结果-2.00和3.00
。