You can't compare a value with a wildcard using an =
What you need to do for that is to use WildMatch:
You can also convert that text to a date using date#:
Date#([Anno cal./mese], 'MMM YYYY')
With a date value, you can use the MMMMM format patern to get the long month description.
When you use the single quotes ('DIC*'), it creates a string literal. Your wildcard (asterisk *) is not doing what you want. It is literally checking if the value in the field is DIC*, whereas you want to see if it starts with DIC and then has some text after that.
I recommend using the following String funcitons lo split your column into two separate columns, and then using the Map function to map to the correct month name:
First, create a mapping table:
mapping load * inline [
Next, you can use Subfield and ApplyMap to get the values you want.
ApplyMap('Mes_Map', subfield([Anno cal./mese], ' ', 1)) AS Mes // Get the month (mes) name, based on the abbreviation
subfield([Anno cal./mese], ' ', 2) AS Ano // Get the year (ano)
The subfield function splits the string into different pieces. If you split on ' ' and select the first field, you will get your month. If you do the same split and select the second field, you will get the year.