2017-01-10 2 views
1

У меня есть такой стол.
Как получить средний символ из строки с помощью SQL Server?

---------------- 
|Id | Name | 
---------------- 
|1 |Apple | 
|2 |banana | 
|3 |Orange | 
|4 |Grapes | 
|5 |Mango | 
---------------- 

мне нужен средний персонаж из каждого результата string.My должен быть, как этот

-------------------- 
|Id | Name |MidChar| 
------------------------ 
|1 |Apple | p | 
|2 |banana | n(or)a| 
|3 |Orange | a(or)n| 
|4 |Grape | a | 
|5 |Mango | n | 
------------------- 

Пожалуйста, дайте какие-то решения или идеи.

ответ

1

Использование LEN и Substring функция

Попробуйте

declare @Name varchar(10) = 'Apple' 

select substring(@Name,LEN(@Name)/2+1,1) 
+0

Но проблема возникла в mango.i, получив «а» в соответствии с вашим решением. –

+0

@PrasannaKumarJ - проверить обновление –

0

Попробуйте ниже сценарий,

SELECT Id,Name,SUBSTRING(Name,CEILING(LEN(Name)/2.0),1) AS MidChar 
FROM MyTable 
0

Я хотел бы предложить вам попробовать ниже запрос. Он должен соответствовать всем вашим требованиям.

SELECT [Id],[Name],CASE WHEN LEN(Name)%2 != 0 
     THEN SUBSTRING(Name,LEN(Name)/2+1,1) 
     ELSE SUBSTRING(Name,LEN(Name)/2,1)+' (or) '+ SUBSTRING(Name,LEN(Name)/2 + 1,1) 
    END AS [MidChar] 
FROM [yourTable] 

Пожалуйста, поделитесь своими отзывами.

+0

@Prasanna Kumar J - Помог ли запрос? – Ankush

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