Sqlite:整数をフォーマットする

Sqliteで1000番目の区切り文字としてコンマを持つように整数列をフォーマットすることは可能ですか?私は、クエリの結果を次のようにしたいと思います。

Id  Name      Price
1   Product1  1,000
2   Product2  2,500
4
理想的には、SQLiteを呼び出す環境がそれを処理します。
追加された 著者 MPelletier,
あなたが文字フィールドにしない限り、Sqliteは書式設定について知らない。データを抽出するために使用するプログラムは、書式設定を担当します。
追加された 著者 Hot Licks,

2 答え

データがテーブルに保存されていて、 SQLiteバージョン3.8.3 以上を使用している場合再帰的なCTEを使用して必要なものを達成することは可能です。

以下は、私が言及している作業SQLの例です。

WITH
    NBR_LIST_ETL AS
    (
    SELECT
        A.*,
            CAST(REPLACE(NBR_LENGTH % 3, 0, 3) AS INTEGER)
        AS SUB_STRING_LENGTH
    FROM
        (
        SELECT
            ID, -- INTEGER PRIMARY KEY COLUMN
            NBR, -- INTEGER COLUMN YOU WANT TO FORMAT W/ COMMAS
                LENGTH(NBR)
            AS NBR_LENGTH
        FROM
            NBR_LIST A -- REPLACE NBR_LIST W/ YOUR TABLE NAME
        ) A
    ),
    NBR_FORMAT_RECURSIVE AS
    (
    SELECT
        ID,
            SUBSTR(NBR, 1, SUB_STRING_LENGTH)
        AS NBR_SEGMENT,
            SUBSTR(NBR, SUB_STRING_LENGTH + 1)
        AS NBR_REMAINING,
            NBR_LENGTH - SUB_STRING_LENGTH
        AS NBR_LENGTH
    FROM
        NBR_LIST_ETL
    UNION ALL
    SELECT
        ID,
            SUBSTR(NBR_REMAINING, 1, 3)
        AS NBR_SEGMENT,
            SUBSTR(NBR_REMAINING, 4)
        AS NBR_REMAINING,
            NBR_LENGTH - 3
        AS NBR_LENGTH
    FROM
        NBR_FORMAT_RECURSIVE
    WHERE
        NBR_LENGTH >= 3
    )
SELECT
        GROUP_CONCAT(NBR_SEGMENT)
    AS NBR_FORMATTED
FROM
    NBR_FORMAT_RECURSIVE
GROUP BY
    ID

あなたのテーブルに次の数字が含まれている場合 -

NBR
25271
7
29
75438175
342
212
4758
863
2313917

次に、クエリが出力されます -

NBR_FORMATTED
25,271
7
29
75,438,175
342
212
4,758
863
2,313,917
1
追加された
ご返信ありがとうございます。私はdev envがAndroidであることを忘れていました。だから私はあなたの解決策を試していない。
追加された 著者 wannik,