Applies to: ✅ Data 360 SQL ✅ Tableau Hyper API
Converts a numeric value to a formatted string using a pattern syntax.
Syntax
format_number(<value>, <pattern>)
Arguments
Required
<value>: The numeric value to format. Accepts any numeric type.<pattern>: Avarcharformat pattern that controls how the number is rendered.
Returns
Returns a varchar string representation of <value> formatted according to <pattern>.
Returns NULL if either argument is NULL.
Pattern Syntax
The pattern syntax admits the following characters:
| Character | Meaning |
|---|---|
0 |
Required digit position. Outputs 0 if no digit is present at that position. |
# |
Optional digit position. Outputs nothing if no digit is present at that position. |
. |
Decimal separator. |
, |
Grouping separator (thousands, and so on). Can define arbitrary group sizes. |
E |
Separates the mantissa and exponent in scientific notation (for example, 0.###E0). |
% |
Multiplies the value by 100 and appends a percent sign. |
‰ |
Multiplies the value by 1000 and appends a per mille sign. |
¤ |
Currency sign. Always outputs $ for a single ¤, or USD for ¤¤. Not locale-configurable. |
; |
Separates positive and negative subpatterns. |
- |
Minus sign. |
' |
Quotes literal text in the pattern. Use '' to include a literal single quote. |
Subpatterns
A pattern can contain two subpatterns separated by ;:
positive_pattern;negative_pattern
If you don't provide a negative subpattern, the negative pattern defaults to the positive pattern prefixed with -. When a negative subpattern is provided, only its prefix and suffix are used; the number formatting is always taken from the positive subpattern.
Considerations
- The pattern syntax is similar to Java
DecimalFormatand Unicode CLDR number patterns. Data 360 SQL supports only a subset of those standards — not all pattern features from those specifications are available. - Returns NULL if either
<value>or<pattern>is NULL. - Use
#in positions where you want to suppress leading or trailing zeros. - Use
0in positions where you always want a digit displayed, even if it's zero.
Examples
Zero-Padding an Integer
Pad a number to four digits with leading zeros.
SELECT format_number(42, '0000') AS result;
Returns '0042'.
Decimal Places with Grouping Separator
Format a number with two decimal places and thousands grouping.
SELECT format_number(1234567.8, '#,##0.00') AS result;
Returns '1,234,567.80'.
Grouping Separator Without Decimals
Display a large integer with thousands separators.
SELECT format_number(9876543, '#,###') AS result;
Returns '9,876,543'.
Percentage Formatting
Multiply by 100 and append a percent sign.
SELECT format_number(0.753, '0.0%') AS result;
Returns '75.3%'.
Scientific Notation
Format a number in standard scientific notation.
SELECT format_number(12345.678, '0.###E0') AS result;
Returns '1.235E4'.
Positive and Negative Subpatterns
Use parentheses to denote negative values (accounting style).
SELECT format_number(-1234.5, '#,##0.00;(#,##0.00)') AS result;
Returns '(1,234.50)'.