将NUMBER转换为其他格式-NUMFORMAT(MyPrice,'$ ###。###,##')

时间:2019-10-21 14:48:26

标签: google-bigquery

我正在寻找类似于BigQuery的用法: NUMFORMAT(MyPrice, '$###.###,##')

示例:NUMFORMAT(99999999.99, '$###.###,##')

结果:99.999.999,99

P.S。通过不使用JavaScript和e.t.c。

1 个答案:

答案 0 :(得分:2)

下面是纯SQL(BigQuery标准SQL)

#standardSQL
CREATE TEMP FUNCTION NUMFORMAT(number FLOAT64) AS (
  REPLACE(REPLACE(REGEXP_REPLACE(FORMAT("%'.2f", number), r'([\d,]+).(\d+)', r'\1=\2'), ',', '.'), '=', ',')
);
SELECT 
  NUMFORMAT(99999.99), 
  NUMFORMAT(99999999.99),
  NUMFORMAT(12345678.09),
  NUMFORMAT(-999.99)

有输出

Row f0_         f1_             f2_             f3_  
1   99.999,99   99.999.999,99   12.345.678,09   -999,99