2015-10-21 17 views
6

Se si esegue la query SQL di seguito; Ottengo il seguente errore:SQL Server: errore nella conversione del tipo di dati da nvarchar a numerico

Error converting data type nvarchar to numeric.

COLUMNA contiene solo numeri (negativi e positivi), tra cui i campi con la massima fino a due cifre dopo la virgola e viene memorizzato come decimale punto.

IF OBJECT_ID('st00_TABLEA','U') IS NOT NULL DROP TABLE [st00_TABLEA] 
SELECT 
    COLUMNA AS COLUMNA_s 
    ,CASE WHEN [COLUMNA] = '' THEN 0 ELSE CONVERT(NUMERIC(18,2),REPLACE([COLUMNA],',','.')) END AS COLUMNA 
INTO st00_TABLEA 
FROM dbosu.TABLEA; 

Ho anche provato il seguente, ma ancora lo stesso problema:

IF OBJECT_ID('st00_TABLEA','U') IS NOT NULL DROP TABLE [st00_TABLEA] 
SELECT 
    COLUMNA AS COLUMNA_s 
    ,CONVERT(DECIMAL(18,2),COLUMNA) AS COLUMNA 
INTO st00_TABLEA 
FROM dbosu.TABLEA; 
+0

si può aggiungere campione di COLUMNA –

+0

io sono nuovo a questo; come/dove posso caricare un campione? – bbilal

risposta

15

Potrebbe essere necessario rivedere i dati nella colonna, ma in ogni caso si può fare in uno dei seguenti: -

1- verifica se è numerica poi convertirlo altro messo un altro valore come 0

Select COLUMNA AS COLUMNA_s, CASE WHEN Isnumeric(COLUMNA) = 1 
THEN CONVERT(DECIMAL(18,2),COLUMNA) 
ELSE 0 END AS COLUMNA 

2- selezionare solo n valori umeric dalla colonna

SELECT COLUMNA AS COLUMNA_s ,CONVERT(DECIMAL(18,2),COLUMNA) AS COLUMNA 
where Isnumeric(COLUMNA) = 1 
+0

Grazie per l'input; tuttavia, ora mi dà un altro errore: Un'espressione di tipo non booleano specificata in un contesto in cui è prevista una condizione, vicino a "REGEXP". – bbilal

+0

@bbilal si prega di verificare ora, ho aggiornato le query –

+0

Grazie! Ora funziona. Quindi nella vostra domanda controllate se le celle sono numeriche; se si; quindi convertili. Quello che non capisco però; COLUMNA ha in realtà solo valori numerici nella tabella (sia i numeri negativi e positivi, sia gli zeri). Sai perché il controllo di isnumeric è ancora necessario? – bbilal

Problemi correlati