Heim >Datenbank >MySQL-Tutorial >Wie vermeide ich Konvertierungsfehler beim Verketten von Zahlen und Zeichenfolgen in T-SQL?

Wie vermeide ich Konvertierungsfehler beim Verketten von Zahlen und Zeichenfolgen in T-SQL?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-17 10:32:26199Durchsuche

How to Avoid Conversion Errors When Concatenating Numbers and Strings in T-SQL?

So verketten Sie Zahlen und Zeichenfolgen für die Zahlenformatierung in T-SQL

Problembeschreibung

In T-SQL besteht eine häufige Aufgabe darin, sie zu kombinieren Zahlen und Zeichenfolgen zum Formatieren eines Felds. Beispielsweise müssen Sie möglicherweise Gewichte oder Abmessungen in bestimmten Einheiten anzeigen. Bei der Kombination von Ganzzahlen und Zeichenfolgen können jedoch Konvertierungsfehler auftreten.

Codebeispiel

Beachten Sie den folgenden Codeausschnitt, der darauf abzielt, Zahlen für Gewichte und Abmessungen zu verketten und zu formatieren:

ALTER FUNCTION [dbo].[ActualWeightDIMS]
(
    @ActualWeight int,
    @Actual_Dims_Lenght int,
    @Actual_Dims_Width int,
    @Actual_Dims_Height int
)
RETURNS varchar(50)
AS
BEGIN

DECLARE @ActualWeightDIMS varchar(50);
--Actual Weight
     IF (@ActualWeight is not null) 
          SET @ActualWeightDIMS = @ActualWeight;
--Actual DIMS
     IF (@Actual_Dims_Lenght is not null) AND 
          (@Actual_Dims_Width is not null) AND (@Actual_Dims_Height is not null)
          SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + @Actual_Dims_Width + 'x' + @Actual_Dims_Height;


     RETURN(@ActualWeightDIMS);

END

Fehler aufgetreten

Bei Verwendung der Funktion tritt ein Fehler auf: „Konvertierung ist beim Konvertieren fehlgeschlagen Varchar-Wert 'x' zum Datentyp int. Dies passiert, wenn Ganzzahlen verkettet werden, ohne sie explizit in Zeichenfolgen zu konvertieren.

Lösung

Um den Fehler zu beheben, wandeln Sie die Ganzzahlparameter vor der Verkettung explizit in VARCHAR um:

SET @ActualWeightDIMS =
     CAST(@Actual_Dims_Lenght AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Width  AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Height  AS VARCHAR(16))

Dies stellt sicher, dass die Parameter als Zeichenfolgen behandelt werden, was ihre Verkettung mit dem Trennzeichen „x“ ermöglicht.

Das obige ist der detaillierte Inhalt vonWie vermeide ich Konvertierungsfehler beim Verketten von Zahlen und Zeichenfolgen in T-SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn