finance.currency.amount_space_sepEuropean variant using thin space or regular space for thousands grouping, comma for decimal, symbol as suffix. French, Polish, Czech formatting convention. Watch for NBSP (U+00A0).
$ finetype infer -i "1 234,56 €"
→ finance.currency.amount_space_sepSELECT finetype('1 234,56 €');
-- → 'finance.currency.amount_space_sep'CAST(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE({col}, '[€$£¥₹₩₿\p{Sc}]', '', 'g'), '[\s\x{00A0}]+', '', 'g'), ',', '.'), '\.$', '') AS DECIMAL(18,2))-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'finance.currency.amount_space_sep';numeric_value: CAST(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE({col}, '[€$£¥₹₩₿\p{Sc}]', '', 'g'), '[\s\x{00A0}]+', '', 'g'), ',', '.'), '\.$', '') AS DECIMAL(18,2))
symbol: REGEXP_EXTRACT({col}, '([€$£¥₹₩₿\p{Sc}]+)'){
"$id": "https://meridian.online/schemas/finance.currency.amount_space_sep",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "European variant using thin space or regular space for thousands grouping, comma for decimal, symbol as suffix. French, Polish, Czech formatting convention. Watch for NBSP (U+00A0).",
"examples": [
"1 234,56 €",
"999,99 €",
"-1 234,56 €",
"10 000,00 €"
],
"pattern": "^-?[0-9]{1,3}([\\s\\x{00A0}][0-9]{3})*(,[0-9]{1,2})?\\s?[€$£¥₹₩₿\\p{Sc}]?$",
"title": "Currency Amount (Space-Separated Thousands)",
"type": "string",
"x-finetype-broad-type": "VARCHAR",
"x-finetype-transform": "CAST(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE({col}, '[€$£¥₹₩₿\\p{Sc}]', '', 'g'), '[\\s\\x{00A0}]+', '', 'g'), ',', '.'), '\\.$', '') AS DECIMAL(18,2))"
}1 234,56 €999,99 €-1 234,56 €10 000,00 €