2016-05-08 3 views
1

私は約2年前に可能なFORMAT_STRINGについてanother postを見ました。私は123456789のような文字列を持っているなら、このようなものを探していますので、適切なカンマを含むようにフォーマットすることができます。123,456,789のようになります。動作中のFORMAT_STRINGまたはTEXT関数はありますか?

Googleスプレッドシートには、さまざまな書式設定を可能にするTEXT機能があります。 Googleスプレッドシートでこれを行う場合は、私ができることは=TEXT("123456789", "#,##0")です。 Googleスプレッドシート関数に存在するもののようなテキストフォーマットを可能にする関数を持つ関数や計画がありますか?レポートを作成しているときにFLOATまたはINTEGERデータを文字列として書式化して他のフィールドと連結する必要がある場合でも、適切な場合にはコンマやパーセンテージを保持する必要がある場合があります。

答えて

4

私は最近導入された標準SQLの方言で、ところでアプローチ(簡略化した例)

SELECT input, output FROM JS(
// input table 
(
    SELECT input FROM 
    (SELECT 123 AS input), 
    (SELECT 1234 AS input), 
    (SELECT 12345 AS input), 
    (SELECT 123456.1 AS input), 
    (SELECT 1234567.12 AS input), 
    (SELECT 12345678.123 AS input), 
    (SELECT 123456789.123 AS input) 
), 
// input columns 
    input, 
// output schema 
"[ 
    {name: 'input', type: 'float'}, 
    {name: 'output', type: 'string'} 
]", 
// function 
"function(r, emit){ 
    emit({ 
    input: r.input, 
    output: r.input.toFixed(2).toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,') 
    }); 
}" 
) 

の下に使用していますが、BigQueryのwhithin(レポート作成)これを行うには、本当に必要なのですか - あなたはFORMAT()機能を使用することができます。
以下の例のように。
表示オプション

SELECT 
    input, 
    FORMAT("%'d", input) AS output 
FROM (
    SELECT 123 AS input UNION ALL 
    SELECT 1234 AS input UNION ALL 
    SELECT 12345 AS input UNION ALL 
    SELECT 123456 AS input UNION ALL 
    SELECT 1234567 AS input UNION ALL 
    SELECT 12345678 AS input UNION ALL 
    SELECT 123456789 AS input 
) 

や山車

SELECT 
    input, 
    CONCAT(FORMAT("%'d", CAST(input AS int64)), 
     SUBSTR(FORMAT("%.2f", CAST(input AS float64)), -3)) 
FROM (
    SELECT 123 AS input UNION ALL 
    SELECT 1234 AS input UNION ALL 
    SELECT 12345 AS input UNION ALL 
    SELECT 123456.1 AS input UNION ALL 
    SELECT 1234567.12 AS input UNION ALL 
    SELECT 12345678.123 AS input UNION ALL 
    SELECT 123456789.1234 AS input 
) 
+0

ための下Use Legacy SQLチェックボックスをオフにすることを忘れないでくださいは、ミハイル、ありがとうございました。 'FORMAT'構文はレガシーSQLモードでのみ利用可能であることは残念です。これには、この機能を使用するために既存のレポートとETLジョブを書き直す必要があります。しかし、このモードではこの機能を知っていることがとても良いです。 –

関連する問題