2017-01-10 37 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

使用LENSubstring功能

試試這個

declare @Name varchar(10) = 'Apple' 

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

但是在mango.i中發生問題根據您的解決方案得到了'a'。 –

+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

相關問題