2015-11-03 1 views

ответ

1

Основываясь на предложении @Aishvarya и @Arvo, код будет как показано ниже. Довольно просто.

declare @input varchar(100) = 'ABCDEFGHIJKLMNOPQR' 
declare @output varchar(100) = '' 

declare @index int = 1 
declare @max_index int = (select len(@input)) 

while @index <= @max_index 
begin 
    if @index % 2 = 0 
     set @output = @output + substring(@input, @index, 1) 

    set @index = @index + 1 
end 

print @output -- BDFHJLNPR 
+0

Обратите внимание, что вы делаете цикл итерацией еще меньше, добавляя приращение '@ index' на 2 * после * 1-й итерации (' @ index' = 1). – niksofteng

+0

Спасибо, что это сработало –

1

Index начинается с 1 в SQL, так что используйте Substring

SELECT SUBSTRING('ABCDEFGHIJKLMNOPQR', 1, 1) //returns the character at 2nd position 
SELECT SUBSTRING('ABCDEFGHIJKLMNOPQR', 3, 1) //returns the character at 4th position 

и так далее.

+0

Извините, Айшварья, у вас нет моего вопроса. Я хочу, чтобы все символы возвращались в запросе, которые расположены в четном положении. –

+0

Вы хотите, чтобы персонажи были в четном положении, не так ли? – MusicLovingIndianGirl

+0

@ KunalChoudhary - объясните лучше тогда, ответ Айшварьи тоже мне подходит. – Arvo