AO-0.25-4
AO-0.37-4
Y2-1.5-2(1004喷塑)
Y2-1.5-2(400V.50HZ)
Y2-1.5-2(415V.50HZ)
Y2-1.5-2(B5全圆盖)
Y2-1.5-2(不喷不订)
Y2-1.5-2(高温轴承)
Y2-1.5-2(加150度PTC)
Y2-1.5-2(菱型PEM-SEL)
Y2-1.5-2(铝壳)
Y2-1.5-2(铝壳)
Y2-1.5-2(铭牌订IP54)
Y-0.55-4
Y-0.55-4
Y-0.55-4如何去除第一个'-’及'-'前的字符和‘()’及‘()’中的内容有些‘()’前还有空格变成如下:
0.25-4
0.37-4
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
0.55-4
0.55-4
0.55-4
AO-0.37-4
Y2-1.5-2(1004喷塑)
Y2-1.5-2(400V.50HZ)
Y2-1.5-2(415V.50HZ)
Y2-1.5-2(B5全圆盖)
Y2-1.5-2(不喷不订)
Y2-1.5-2(高温轴承)
Y2-1.5-2(加150度PTC)
Y2-1.5-2(菱型PEM-SEL)
Y2-1.5-2(铝壳)
Y2-1.5-2(铝壳)
Y2-1.5-2(铭牌订IP54)
Y-0.55-4
Y-0.55-4
Y-0.55-4如何去除第一个'-’及'-'前的字符和‘()’及‘()’中的内容有些‘()’前还有空格变成如下:
0.25-4
0.37-4
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
0.55-4
0.55-4
0.55-4
SET @str = 'Y2-1.5-2(1004喷塑)'
SELECT STUFF(STUFF(@str, 1, CHARINDEX('-', @str), ''),
CASE WHEN CHARINDEX('(', @str) = 0 THEN 1
ELSE CHARINDEX('(', STUFF(@str, 1, CHARINDEX('-', @str), ''))
END, CHARINDEX(')', STUFF(@str, 1, CHARINDEX('-', @str), '')), '')
----结果1.5-2注意里面的括号。
create table aa
(
aad nvarchar(200)
)
insert into aa
select 'AO-0.25-4'
union ALL select 'AO-0.37-4'
union ALL select 'Y2-1.5-2(1004喷塑)'
union ALL select 'Y2-1.5-2(400V.50HZ)'
union ALL select 'Y2-1.5-2(415V.50HZ)'
union ALL select 'Y2-1.5-2(B5全圆盖)'
union ALL select 'Y2-1.5-2(不喷不订)'
union ALL select 'Y2-1.5-2(高温轴承)'
union ALL select 'Y2-1.5-2(加150度PTC)'
union ALL select 'Y2-1.5-2(菱型PEM-SEL)'
union ALL select 'Y2-1.5-2(铝壳)'
union ALL select 'Y2-1.5-2(铝壳)'
union ALL select 'Y2-1.5-2(铭牌订IP54)'
union ALL select 'Y-0.55-4'
union ALL select 'Y-0.55-4'
union ALL select 'Y-0.55-4'SELECT *,STUFF(CASE WHEN CHARINDEX('(',aad)>0 THEN STUFF(aad,CHARINDEX('(',aad),CHARINDEX(')',aad),'')
ELSE aad END,1,CHARINDEX('-',REPLACE(CASE WHEN CHARINDEX('(',aad)>0 THEN STUFF(aad,CHARINDEX('(',aad),CHARINDEX(')',aad),'')
ELSE aad END,' ','')),'') FROM AA
create table #t(col varchar(20))
insert into #t
select 'AO-0.25-4' union all
select 'AO-0.37-4' union all
select 'Y2-1.5-2(1004喷塑)' union all
select 'Y2-1.5-2(400V.50HZ)'select case when charindex('(',col)>0 then stuff(right(col,len(col) -charindex('-',col)),charindex('(',right(col,len(col) -charindex('-',col)))
,charindex(')',right(col,len(col) -charindex('-',col))),'') else right(col,len(col) -charindex('-',col)) end
from #t
0.25-4
0.37-4
1.5-2
1.5-2(4 row(s) affected)
INSERT @TABLE SELECT 'AO-0.37-4'
INSERT @TABLE SELECT 'Y2-1.5-2(1004喷塑)'
INSERT @TABLE SELECT 'Y2-1.5-2(400V.50HZ)'
INSERT @TABLE SELECT 'Y2-1.5-2(415V.50HZ)'
INSERT @TABLE SELECT 'Y2-1.5-2(B5全圆盖)'
INSERT @TABLE SELECT 'Y2-1.5-2(不喷不订)'
INSERT @TABLE SELECT 'Y2-1.5-2(高温轴承)'
INSERT @TABLE SELECT 'Y2-1.5-2(加150度PTC)'
INSERT @TABLE SELECT 'Y2-1.5-2(菱型PEM-SEL)'
INSERT @TABLE SELECT 'Y2-1.5-2(铝壳)'
INSERT @TABLE SELECT 'Y2-1.5-2(铝壳)'
INSERT @TABLE SELECT 'Y2-1.5-2(铭牌订IP54)'
INSERT @TABLE SELECT 'Y-0.55-4'
INSERT @TABLE SELECT 'Y-0.55-4'
INSERT @TABLE SELECT 'Y-0.55-4'
SELECT
case when PATINDEX('%[(,(]%',NN)>0 then substring(nn,PATINDEX('%-%',NN)+1, PATINDEX('%[(,(]%',NN)-PATINDEX('%-%',NN)-1)
else substring(nn,PATINDEX('%-%',NN)+1, LEN(nn)-PATINDEX('%-%',NN)) end as nn
FROM @TABLE/*
nn
--------------------
0.25-4
0.37-4
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
1.5-2
0.55-4
0.55-4
0.55-4(16 行受影响)
*/
case when PATINDEX('%[((]%',NN)>0 then rtrim(substring(nn,PATINDEX('%-%',NN)+1, PATINDEX('%[((]%',NN)-PATINDEX('%-%',NN)-1))
else rtrim(substring(nn,PATINDEX('%-%',NN)+1, LEN(nn)-PATINDEX('%-%',NN))) end as nn
FROM @TABLE
Y2-45-4(400V/50HZ)(菱形PEM-SEL)变成
YEJ2-0.55-4
Y2-45-4