sql >> データベース >  >> RDS >> SQLite

SQLiteでコンマを使用して数値をフォーマットする

    SQLiteにはprintf()があります 関数またはformat() フォーマット文字列に従って数値をフォーマットできるようにする関数。

    SQLite 3.18.0以降では、コンマフラグを受け入れます。これにより、整数の千のマークにコンマ区切り文字を付けることができます。

    実数/浮動小数点数で機能させるために、さらに作業を行うことができます。

    千単位の区切り文字としてコンマを使用して整数をフォーマットする例を次に示します。

    SELECT printf("%,d", 123456789);

    結果:

    123,456,789

    "%,d"のフォーマット文字列 この結果を決定したのはです。

    実数/浮動小数点数

    上記の解決策は、小数部分なしで数値を返す場合にのみ機能します。

    そのフォーマット文字列を実数に適用してみましょう:

    SELECT printf("%,d", 1234567.4567);

    結果:

    1,234,567

    フォーマット文字列に小数部分が含まれていないため、グループ区切り文字としてコンマが使用されます。

    小数部分を返す方法は次のとおりです。

    SELECT printf("%.2f", 1234567.4567);

    結果:

    1234567.46

    ここで、"%.2f"のフォーマット文字列 結果に小数点以下2桁を含める必要があることを指定します。 "%.3f"を使用できます 小数点以下3桁など。

    次のことができると思われるかもしれません:

    SELECT printf("%,d.2f", 1234567.4567);

    結果:

    1,234,567.2f

    しかし、それは明らかに機能しませんでした。

    SQLiteは、数値の広範なフォーマット機能を提供していません。数値の書式設定は非常に複雑になる可能性があり、通常はアプリケーションレベルで書式設定を適用することをお勧めします。

    とはいえ、SQLiteでこれを実際に行う必要がある場合は、整数部分をコンマでフォーマットしてから、それを小数部分と連結してみてください。

    たとえば、priceというデータベース列があるとします。 、次の結果を返します:

    SELECT price FROM Products;

    結果:

    5457.99   
    1238999.99
    11.357    
    3.49      
    3.0001    
    1234567.89
    1499.5    
    9.49      
    149  

    次の行に沿って何かを実行して、これらすべての数値を千単位の区切り文字でフォーマットすることができます 小数点:

    SELECT
        printf("%,d", price) 
        || 
        substr(
        printf("%.2f", price), 
        instr(printf("%.2f", price), "."), 
        length(printf("%.2f", price)) - instr(printf("%.2f", price), ".") + 1
        )
    FROM Products;

    結果:

    5,457.99                                                                                                                                                                                     
    1,238,999.99                                                                                                                                                                                 
    11.36                                                                                                                                                                                        
    3.49                                                                                                                                                                                         
    3.00                                                                                                                                                                                         
    1,234,567.89                                                                                                                                                                                 
    1,499.50                                                                                                                                                                                     
    9.49                                                                                                                                                                                         
    149.00   

    format() 機能

    SQLite 3.38.0(2022年2月22日リリース)はprintf()の名前を変更しました format()への関数 。元のprintf() 名前は、下位互換性のためにエイリアスとして保持されます。

    したがって、このページの最初の例は次のように変更できます。

    SELECT format("%,d", 123456789);

    結果:

    123,456,789

    1. psycopg2のインストール中にエラーが発生しました。-lsslのライブラリが見つかりません

    2. SQLカーソルの操作

    3. 更新可能なビューのCHECK句

    4. 医療業界がデータベースを使用する方法