Dalla versione 2.5 Firebird introduce il predicato “SIMILAR TO” che permette di applicare un sottoinsieme di regular expression in una condizione SQL.
La documentazione del predicato “SIMILAR TO” è disponibile alla pagina https://firebirdsql.org/refdocs/langrefupd25-similar-to.html
Se volessimo controllare se all’interno di una strina sono presenti numeri (DIGIT), cioè caratteri da ‘0’ a ‘9’ potremmo semplicemente scrivere :
SELECT 'PRESENTI' AS RISULTATO FROM RDB$DATABASE WHERE 'AG8G9SG' SIMILAR TO '%[[:DIGIT:]]{1}%'
in questo caso l’espressione
‘AG8G9SG’ SIMILAR TO ‘%[[:DIGIT:]]{1}%’ –> True
‘Giorgio’ SIMILAR TO ‘%[[:DIGIT:]]{1}%’ –> False
Spero sia stato utile…