Io ho una tabella in cui ho un campo int ed un campo nvarchar (che contiente
comunque numeri), dovrei moltiplicarli.
Come fare?
CREATE TABLE Test
(
Num INT NOT NULL,
Chr VARCHAR(5) NOT NULL
)
ho inserito dei record di prova
INSERT Test VALUES (1, '1')
INSERT Test VALUES (2, '2')
INSERT Test VALUES (3, '3')
INSERT Test VALUES (4, '4')
ed ho eseguito l'istruzione che segue
SELECT Num, Chr, Num * Chr
FROM Test
Ottengo regolarmente il risultato desiderato...
Ciao...
--
Luca Bianchi
Microsoft MVP - SQL Server
OK per quanto riguarda valorin INTEGER, ma io ho dei valori con decimali,
come faccio?
...anche modificando il campo INT in DECIMAL il risultato non cambia...
=========================
CREATE TABLE Test
(
Num DECIMAL(5, 2) NOT NULL,
Chr NVARCHAR(5) NOT NULL
)
INSERT Test VALUES (1.2, N'1.2')
INSERT Test VALUES (2.0, N'2.0')
INSERT Test VALUES (3.9, N'3.9')
INSERT Test VALUES (4.5, N'4.5')
SELECT Num, Chr, Num * Chr
FROM Test
=========================
Ciao PINKU,
Nell'esempio che ti ha proposto Luca se la colonna nvarchar contiene valori
non interi, devi effettuare una conversione esplicita della colonna int in
un datatype in grado di gestire numeri decimali (ad esempio numeric o
decimal), altrimenti riceverai l'errore:
Server: Msg 245, Level 16, State 1, Line 1
Syntax error converting the nvarchar value '1.2' to a column of data type
int.
Esempio:
USE tempdb
GO
CREATE TABLE dbo.Test(
Num int NOT NULL,
Chr nvarchar (5) NOT NULL
)
GO
INSERT Test VALUES (1, '1.2')
INSERT Test VALUES (2, '2.26')
INSERT Test VALUES (3, '3.99')
INSERT Test VALUES (4, '.5')
GO
SELECT Num, Chr, CAST(Num AS Numeric(3,2)) * Chr Prodotto
FROM dbo.Test
GO
/* Output:
Num Chr Prodotto
----------- ----- ---------
1 1.2 1.2000
2 2.26 4.5200
3 3.99 11.9700
4 .5 2.0000
(4 row(s) affected)
*/
DROP TABLE dbo.Test
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
UGIdotNET - http://www.ugidotnet.org
UGISS - http://www.ugiss.org
Ho comunque risolto costruendomi il valore pulito a furia di TRIM, PATINDEX,
SUBSTRING etc.....
Che sudata, comunque grazie.
Ciao Pinku,
perdonami, ma non ti conviene razionalizzare i dati con una serie di UPDATE?
Che senso ha una colonna contenente informazioni "eterogenee"?
Grazie e ciao.