per i tipi di campo diversi basta fare un CAST (a discapito delle prestazioni), ma mi interessava capire la logica