2016-07-21 20 views
1

私はこのコードを使用していますが、varchar値 'o'をデータ型intに変換すると変換に失敗します。文字列から最大+1のキャストを選択

私の列が

o01 
o02 
o13 

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

例が含まれているが、私はこのerrrorを得るThatsなぜ変換し使用する必要がありますか?

それはこのように解決構文エラー、でしたが、今で> 10の値に私はTIS結果o06を取りたい、今私はあなたが文字列に1を追加しているO6

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

サンプルデータと望ましい結果を提供してください。また、質問には関係ありませんが、より新しいバージョンのSQL Serverにアップグレードする必要があります.SQL Server 2000は*年*の間サポートされていません。 –

答えて

0

を取ります。 1は数字なので、+は連結ではなく加算として解釈されます。

はおそらく、あなたはつもり:

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

また、あなたが必要になることがあります。

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

このpanelnameの最後の2つの文字が数字であることを前提としています。

+0

そのコードは、テキストの最後に値 '1'を追加します。私は最大+1を追加したい – user6615498

+0

ああ!構文エラーでした。それはありがとうございます!しかし、値> 10では結果o06を取ってみたい、今私はo6を取る – user6615498

+0

@ user6615498。 。 。おそらく別の質問をするべきです。 –