2016-07-21 2 views
1

Я использую этот код, но я не получаю Conversion при преобразовании значения varchar 'o' в тип данных int.Выберите cast с max +1 из textstring

мои столбцы содержат пример

o01 
o02 
o13 

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

Если использовать Преобразовать Вот почему я получаю эту errror?

Это была ошибка синтаксиса, решаемая Подобно этому, но теперь в значениях> 10 я хочу взять тис результата o06, теперь я беру ø6

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 являются цифры.

+0

Этот код добавляет значение '1' в конце моего текста. Я хочу добавить max +1 – user6615498

+0

Oh! поэтому это была синтаксическая ошибка. Спасибо, это работает! Но в значениях> 10 я хочу взять tis результат o06, теперь я беру o6 – user6615498

+0

@ user6615498. , , Вероятно, вы должны задать другой вопрос. –

Смежные вопросы