0

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

4

2 回答 2

2

在您的情况下,Format([SumOfTotalPopulation],"0")只需从数字中删除小数即可。

在 SQL Server 中,您可以使用类似Str(sumOfTotalPopulation,12,0)

或者你可以使用Round()

于 2013-07-05T18:02:42.270 回答
1

AccessFormat()函数的行为因传递给它的数据类型而异。在此示例中,我假设您的SumOfTotalPopulation字段是数字,这意味着将按照此处所述进行格式化 - 基本上,它将被格式化为整数 - 没有小数点,没有千位分隔符。

对您来说好消息是,如果 SQL Server 中的字段已经定义为整数类型,则不必进行这种格式化。否则,您应该在表示层(用户界面、网页、报告等)而不是在查询本身中进行这种格式化。

访问教会了很多坏习惯。与其对 Access 中的内容进行一对一的翻译,不如借此机会尽可能地更新要“以 SQL Server 方式”完成的事情。

于 2013-07-05T18:03:21.513 回答