406 Stimmen

Konvertieren Sie INT in VARCHAR SQL

Ich verwende Sybase und mache ein Select, das mir eine Spalte namens "iftype" zurückgibt, aber ihr Typ ist int und ich muss sie in varchar umwandeln. Wenn ich versuche, das Select ohne die Konvertierungsfunktion durchzuführen, erhalte ich diesen Fehler:

Fehlercode 257, SQL-Status 37000: Implizite Konvertierung vom Datentyp 'VARCHAR' in 'INT' ist nicht erlaubt. Verwenden Sie die CONVERT-Funktion, um diese Abfrage auszuführen.

Ich weiß nicht, wie ich die Funktion CONVERT implementieren soll. Kann mir jemand bitte helfen?

679voto

Tobberoth Punkte 8980

Verwenden Sie die Konvertierungsfunktion.

SELECT CONVERT(varchar(10), field_name) FROM table_name

133voto

Rei Salazar Punkte 91

Verwenden Sie die STR-Funktion:

SELECT STR(Feldname) FROM Tabellenname

Argumente

float_expression

Ein Ausdruck vom Typ Gleitkommazahl (float) mit einem Dezimalpunkt.

Länge

Die Gesamtlänge. Dies beinhaltet den Dezimalpunkt, das Vorzeichen, Ziffern und Leerzeichen. Der Standardwert beträgt 10.

Dezimal

Die Anzahl der Stellen rechts vom Dezimalpunkt. Dezimal muss kleiner oder gleich 16 sein. Wenn Dezimal größer als 16 ist, wird das Ergebnis auf sechzehn Stellen rechts vom Dezimalpunkt abgeschnitten.

Quelle: https://msdn.microsoft.com/en-us/library/ms189527.aspx

39voto

Hamid Heydarian Punkte 730

Sie können die CAST-Funktion verwenden:

SELECT CAST(your_column_name AS varchar) FROM your_table_name

27voto

PAS Punkte 1060

Eigentlich brauchen Sie nicht STR oder Convert zu verwenden. Wählen Sie einfach 'xxx'+LTRIM(Spaltenname), um den Job zu erledigen. Möglicherweise verwendet LTRIM Convert oder STR unter der Haube.

LTRIM entfernt auch die Notwendigkeit, die Länge anzugeben. Es scheint für Ganzzahlen oder Floats zu funktionieren, ohne sich um Trunkierung sorgen zu müssen.

SELECT LTRIM(Spaltenname) FROM Tabellenname

auch ist LTRIM besser als STR, da

SELECT STR(1234567890.123) 

gibt 1234567890 während

SELECT LTRIM(1234567890.123) 

gibt 1234567890.123

1voto

Zahid Hasan Punkte 335
SELECT Cast(Cast([field_name] AS BIGINT) AS NVARCHAR(255))
FROM   table_name

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X