Categories: Datatype, Variant Type
TYPEOF Preview
Reports the type (in string format) of the input expression.
Syntax
TYPEOF(input any) → VARCHAR
- input: An expression for which the type is returned.
Examples
TYPEOF exampleSELECT TYPEOF(TRUE)
-- BIT
SELECT TYPEOF(100)
-- INT
SELECT TYPEOF(TO_VARIANT(TRUE))
-- VARIANT<BOOLEAN>
SELECT TYPEOF(VARIANT_GET(payload, '$.fruit')) FROM events
-- -- Returns VARIANT<ARRAY> when path contains an array
SELECT TYPEOF(VARIANT_GET(payload, '$.settings')) FROM events
-- -- Returns VARIANT<STRUCT> when path contains an object
Usage Notes
Return values
TYPEOF returns the type name as a string:
| Expression type | Returns |
|---|---|
| BOOLEAN | BIT |
| INTEGER | INT |
| BIGINT | BIGINT |
| FLOAT | FLOAT |
| DOUBLE | DOUBLE |
| DECIMAL | DECIMAL |
| VARCHAR | VARCHAR |
| VARBINARY | VARBINARY |
| UUID | UUID |
| DATE | DATE |
| TIME | TIME |
| TIMESTAMP | TIMESTAMP |
| MAP | MAP |
| ARRAY | ARRAY<type> (e.g., ARRAY<INTEGER>) |
| STRUCT/ROW | Not supported |
| VARIANT scalar | VARIANT<type> (e.g., VARIANT<VARCHAR>, VARIANT<INT>) |
| VARIANT null | VARIANT<NULL> |
| VARIANT boolean | VARIANT<BOOLEAN> |
| VARIANT binary | VARIANT<VARBINARY> |
| VARIANT object | VARIANT<STRUCT> |
| VARIANT array | VARIANT<ARRAY> |
When VARIANT_GET is called without AS, it returns a VARIANT. Use TYPEOF on the result to inspect the type at a given path before extracting.
A ? suffix in the output (e.g., VARCHAR?) indicates the value is nullable.