2016-07-21 4 views
1

Ich benutze diesen Code, aber ich bekomme Konvertierung bei der Konvertierung der Varchar-Wert 'O' in Datentyp Int.Wählen Sie Cast mit max +1 aus Textstring

meine Spalten enthalten Beispiel

o01 
o02 
o13 

select cast('o'+(max(right(panelname, 2)+1))as varchar(50)) 

das ist Convert verwenden sollten, warum ich diese errror bekommen?

Es war Syntaxfehler, wie dieses Problem gelöst, aber jetzt in Werten> 10 i tis Ergebnis o06 nehmen will, jetzt nehme ich o6

select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50)) 
+1

Geben Sie Beispieldaten und gewünschte Ergebnisse an. Außerdem sollten Sie, obwohl für die Frage nicht relevant, auf eine neuere Version von SQL Server aktualisieren - SQL Server 2000 wurde für * Jahre * nicht unterstützt. –

Antwort

0

Sie fügen ein in einen String. 1 ist eine Zahl, so dass + eher als Addition als Verkettung interpretiert wird.

Vielleicht beabsichtigen Sie:

select cast('o' + (max(right(panelname, 2) + '1')) as varchar(50)) 

Alternativ Sie vielleicht:

select 'o' + cast(max(right(panelname, 2) + 1) as varchar(50)) 

Dies davon aus, dass die letzten beiden Zeichen von panelname Ziffern sind.

+0

Dieser Code fügt am Ende meines Textes einen Wert '1' hinzu. Ich möchte hinzufügen, max +1 – user6615498

+0

Oh! Es war also ein Syntaxfehler. Danke, es funktioniert! Aber in Werten> 10 möchte ich das Ergebnis o06 nehmen, jetzt nehme ich o6 – user6615498

+0

@ user6615498. . . Sie sollten wahrscheinlich eine andere Frage stellen. –

Verwandte Themen