2013-07-05 3 views
0

У меня есть следующий запрос в MS Access и его необходимо преобразовать в SQL Server. Я пытаюсь понять, что делает функция формата здесь и что такое «0».Функция формата в Access

SELECT Format([SumOfTotalPopulation],"0") AS Expr1 , SumOfTotalPopulation FROM 
    qry_ASSET_STREAM_DS_POP_PROP ; 

Может ли кто-нибудь помочь мне понять это. Вышеприведенный код присутствует в MS Access 2003 и Im работает над SQL Server 2008 R2.

+0

[Документация] (http://office.microsoft.com/en-us/access-help/format-function-HA001228839.aspx) для функции Format(). –

+0

При просмотре, чтобы понять формат смысла, я прошел через эти сайты. Но не в состоянии понять – user1483122

ответ

1

Доступ Format() функция ведет себя по-разному в зависимости от типа данных, передаваемых в него. В этом примере я предполагаю, что ваше поле SumOfTotalPopulation является числом, что означает, что форматирование будет выполнено as described here - в основном, оно будет отформатировано как целое число - без десятичной точки, без разделителей тысяч.

Хорошей новостью для вас является то, что если поле в SQL Server уже определено как целочисленный тип, вам не нужно будет делать это форматирование. В противном случае вы должны делать это форматирование на уровне презентации (пользовательский интерфейс, веб-страницу, отчет и т. Д.), А не в самом запросе.

Доступ учит много вредных привычек. Вместо того, чтобы переводить то, что у вас есть в Access one-one-one-one-one, используйте эту возможность, чтобы обновить все, что нужно сделать «путь SQL Server», где это возможно.

+0

Доступ учит много вредных привычек? Я не думаю, что это так. Я думаю, что люди могут получить такое впечатление, потому что Access является самым доступным (LOL) программным обеспечением для баз данных для новичков, которые учат себя. В любом случае, это не совсем так, поэтому я остановлюсь на бессвязном – Scotch

+0

Хммм .. Поскольку мой столбец имеет целочисленный тип данных, а не десятичный, похоже, что мне не нужно использовать функцию Format. Это действительно помогает. Спасибо, Алкрок. – user1483122

2

В вашем случае Format([SumOfTotalPopulation],"0") просто удаляет десятичные знаки из числа.

В SQL Server, можно использовать что-то вроде Str(sumOfTotalPopulation,12,0)

Или вы могли бы использовать Round()

+0

Ох .. Спасибо. Это имеет смысл. Спасибо Scotch – user1483122

+0

Это будет полезно, если столбец Im использует тип decimal. Так как я оговорил этот тип в моем вопросе. Это также один из правильных ответов. – user1483122

Смежные вопросы