2010-12-29 10 views
0

Ich brauche eine Hilfe in SQL-Abfrage.Text zu float oder Dezimal-Konvertierung

Ich habe eine Tabelle wie

A | B | C
1 | 1.3 | p
2 | 2.6 | c

Felder (A- Typ int) (B - Typ (text)) (C-Type (nvarchar))

i multiplizieren muß (einige Werte mit (B-Typ (text)) Beispiel (1.3 X b)) als x ist es möglich.

bitte mich wissen lassen

+0

Die wahre Lösung für dieses ist Ihre Tabellenentwurf zu beheben. Nicht nur, dass Text eine schlechte Wahl ist, um Zahlen zu speichern, auf denen Sie Berechnungen durchführen möchten, es ist veraltet und wird NICHT in der nächsten Version von SQL Server sein. Dies ist ein Designproblem, das so schnell wie möglich behoben werden muss. – HLGEM

Antwort

3

Von MSDN CAST and CONVERT:

so etwas wie dieses Versuchen:

SELECT CONVERT(decimal(10,5),(CAST(B AS varchar(10)))) * MyValue 
AS MyMultipliedValue FROM TABLE 
+0

Hallo Danke für Ihre Antwort aber es zeigt Explizite Konvertierung von Datentyp Text in Dezimal ist nicht erlaubt. Dieser Fehler – raja

+0

@raja: OK! Überprüft die Umrechnungstabelle in dem Artikel, den ich erwähnte, und Text zu Dezimal ist in der Tat nicht erlaubt. Ich bearbeite meinen Beitrag. – LaGrandMere

+0

@raja: zuerst Sie Ihren Text als Varchar, dann konvertieren Sie es in Dezimal. Tatsächlich kann die Umwandlung nicht notwendig sein, da sie implizit sein kann. – LaGrandMere