2014-12-29 50 views
-4

我有這樣
如何在sql server中對字符串進行子串處理?

INF/000079160100/P在SQL字符串 - ()情況下使用網上銀行

我想讀大膽的字符串。
如何使用子字符串函數讀取該字符串。

select 'INF/000079160153/P- (539) cases NET BANKING',Substring('INF/000079160153/P- (539) cases NET BANKING', CHARINDEX('(', 'INF/000079160153/P- (539) cases NET BANKING',(SELECT CHARINDEX('/', 'INF/000079160153/P- (539) cases NET BANKING')+1))+1,6) 

這是給我539)c但我只想讀到右括號。

在此先感謝。 SUBSTRING功能

回答

1
select 'INF/000079160153/P- (539) cases NET BANKING', 
Substring('INF/000079160153/P- (539) cases NET BANKING', 
    CHARINDEX('(', 'INF/000079160153/P- (539) cases NET BANKING',(SELECT CHARINDEX('/', 'INF/000079160153/P- (539) cases NET BANKING')+1))+1, 
    CHARINDEX(')', 'INF/000079160153/P- (539) cases NET BANKING')-CHARINDEX('(', 'INF/000079160153/P- (539) cases NET BANKING')-1) 
+0

感謝它也有效。 – vijayk

1

你硬編碼的長度 - (...,6)...)
在查詢,你需要計算長度'('性格和')'字符的折射率之間的差

DECLARE @Test AS NVARCHAR(200) = 'INF/000079160153/P- (539) cases NET BANKING' 
SELECT @Test 
, SUBSTRING(@Test 
     , CHARINDEX('(', @Test,CHARINDEX('/', @Test)) + 1 
     , CHARINDEX(')', @Test,CHARINDEX('/', @Test)) - (CHARINDEX('(', @Test,CHARINDEX('/', @Test)) + 1)) 
相關問題