我在SQL中有一个字符串,如
INF / 000079160100 / P - ( 34 )案件净银行
我想以粗体显示一个字符串。
如何使用substring函数读取该字符串。
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但我想只读到结束括号。
提前感谢。
答案 0 :(得分: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)
答案 1 :(得分:1)
你有SUBSTRING
函数的硬编码长度 - (...,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))