>Ho provato e funziona ma per alcuni valori mi va in errore.
>Io devo convertire tutti valori che trovo in una determinata
>colonna ed essi possono essere vuoti o avere la forma 123..n,xx
>Eseguendo la query da te suggerita mi appare l'errore "Error
>converting data type nvarchar to numeric."
>Dovrebbe dipendere dal fatto che alcuni campi sono valorizzati
>'' e non null..
Questo puoi verificarlo con una banale query:
DECLARE @t TABLE(
Col varchar(5)
);
INSERT @t
VALUES (NULL), (''), ('13,45');
SELECT
CASE
WHEN Col = '' OR Col IS NULL THEN 0
ELSE CAST(CAST(REPLACE(Col, ',', '.') AS decimal(2,0)) AS int)
END AS Intero
FROM @t;
/* Output:
Intero
-----------
0
0
13
(3 row(s) affected)
*/
Una ulteriore causa di errore può essere dovuta al fatto che la stringa potrebbe contenere un valore numerico con più di 2 cifre per la parte intera, pertanto dovrai dimensionare opportunamente lo scale del cast a decimal.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/