[英]Add a . every 3rd digit/pad with 0 in SELECT
在一個MS Access 2007項目中,我有一個包含以下記錄源的報告:
SELECT SomeTable.SomeCol FROM SomeTable;
SomeCol
應為SomeCol
或9位數字。
讓我們先看3、6和9。 說是123
應該保留為123
。 如果是123456
,則應將其更改為123.456
。 如果是123456789
,則應將其更改為123.456.789
。 如果是1
或65
,則應分別將其更改為001
和065
。
如何修改SELECT
以執行這些更改? 如果長度不是1、2、3、6或9,則字符串應保持不變。
謝謝!
我找到了一個解決方案,盡管它不是很漂亮。
實際上, SomeTable.SomeCol
是一個很長的字符串,因此在我的系統上看起來更糟。 SELECT
是具有多個JOIN
的更大查詢的一部分,因此需要SomeTable
。 我覺得這是最好的解決方案:
SELECT switch(
len(SomeTable.SomeCol) < 3,
format(SomeTable.SomeCol, '000'),
len(SomeTable.SomeCol) = 6,
format(SomeTable.SomeCol, '000\.000'),
len(SomeTable.SomeCol) = 9,
format(SomeTable.SomeCol, '000\.000\.000'),
true,
SomeTable.SomeCol
) as SomeCol
FROM SomeTable;
我不知道您的語言環境,所以我不知道數字是默認為停止符還是逗號:
SELECT IIf(Len([atext])<4,Format([atext],"000"),Replace(Format(Val([atext]),"#,###"),",",".")) AS FmtNumber
FROM Table2 AS t;
您可以使用類似的格式語句,而無需將報表基於查詢,但是在將控件設置為函數之前,請確保更改控件的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.