簡體   English   中英

添加一個。 每3位數字/填充,SELECT中為0

[英]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 如果是165 ,則應分別將其更改為001065

如何修改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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM