我在MS Access中有以下查询,需要转换为SQL Server。我试图了解格式函数在这里做了什么以及“0”的用法是什么。
SELECT Format([SumOfTotalPopulation],"0") AS Expr1 , SumOfTotalPopulation FROM
qry_ASSET_STREAM_DS_POP_PROP ;
任何人都可以帮我解决这个问题。上面的代码存在于MS Access 2003中,而我正在使用SQL Server 2008 R2。
答案 0 :(得分:2)
在您的情况下,Format([SumOfTotalPopulation],"0")
只是从数字中删除小数。
在SQL Server中,您可以使用Str(sumOfTotalPopulation,12,0)
或者您可以使用Round()
答案 1 :(得分:1)
Access Format()
函数根据传入其中的数据类型而有不同的行为。在这个例子中,我假设你的SumOfTotalPopulation
字段是一个数字,这意味着格式化将完成as described here - 基本上,它将被格式化为整数 - 没有小数点,没有数千分离器。
对你来说好消息是,如果SQL Server中的字段已经定义为整数类型,则不必进行此格式化。否则,您应该在表示层(用户界面,网页,报表等)进行此格式化,而不是在查询本身。
Access教会了许多坏习惯。而不是在Access中进行一对一的翻译,借此机会尽可能以“SQL Server方式”更新要做的事情。