Problem mit Konvertierung zu integer

15/12/2009 - 12:33 von Irmgard Schwenteck | Report spam
Hallo,

wie kann man z.B. einen Wert '16,' in 16 konvertieren?

cast(spalte as integer) arbeitet hier leider nicht.

Die Spalte in der DB ist vom Typ varchar, es stehen aber nur Zahlenwerte
drin.
fast immer jedenfalls, es kommt eben auch mal sowas wie '16,' hinein.
Beim Summieren meckert der SQL-Server, er könne diesen Wert nicht in
eine Zahl umwandeln.

Beim Gruppieren unterschlàgt er hingegen das Komma; ich wollte mal
zàhlen wieviel Datensàtze überhaupt betroffen sind.

Gruß
Irmgard
 

Lesen sie die antworten

#1 Stefan Hoffmann
15/12/2009 - 12:59 | Warnen spam
hallo Irmgard,

On 15.12.2009 12:33, Irmgard Schwenteck wrote:
wie kann man z.B. einen Wert '16,' in 16 konvertieren?
cast(spalte as integer) arbeitet hier leider nicht.

Die Spalte in der DB ist vom Typ varchar, es stehen aber nur Zahlenwerte
drin.
fast immer jedenfalls, es kommt eben auch mal sowas wie '16,' hinein.
Beim Summieren meckert der SQL-Server, er könne diesen Wert nicht in
eine Zahl umwandeln.



USE [tempdb] ;
GO

CREATE TABLE [TestConvert]
(
[ID] INT IDENTITY(1, 1)
NOT NULL
PRIMARY KEY,
[Payload] VARCHAR(16) NOT NULL
) ;
GO

INSERT INTO [TestConvert] ( [Payload] )
VALUES ( '1' ) ,
( '2, ' ),
( ' 3 ' ),
( '4.' ) ;
SELECT *,
CONVERT(INT, CONVERT(MONEY, [Payload])),
CAST(CAST([Payload] AS MONEY) AS INT)
FROM [TestConvert] ;
GO

DROP TABLE [TestConvert] ;
GO



mfG

Ähnliche fragen