Access中的格式化功能

时间:2013-07-05 17:54:23

标签: sql-server sql-server-2008 ms-access

我在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。

2 个答案:

答案 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方式”更新要做的事情。