Dev*_*ora 12 sql t-sql sql-server substring patindex
CREATE TABLE #tmpTbl (m VARCHAR(100))
INSERT INTO #tmpTbl VALUES
(',[Undergraduate1]')
,(',[Undergraduate10]')
,(',[Undergraduate11]')
;
GO
select LEFT(m, PATINDEX('%[0-9]%', m)-1) as a,
SUBSTRING(m, PATINDEX('%[0-9]%', m), LEN(m)) as b from #tmpTbl
drop table #tmpTbl
Run Code Online (Sandbox Code Playgroud)
您好了上面的tmptable和select语句,结果如下.
a | b
-------------------------------------------------------
,[Undergraduate | 1]
,[Undergraduate | 10]
,[Undergraduate | 11]
Run Code Online (Sandbox Code Playgroud)
但是我希望它是这样的.
a | b
-------------------------------------------------------
,[Undergraduate | 1
,[Undergraduate | 10
,[Undergraduate | 11
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这一目标?我尝试了很多与PATINDEX,LEFT,RIGHT,SUBSTRING,LEN的组合.但是在B栏中无法正确
你可以用replace来删除].狡猾,但它实现了你想要的
select LEFT(m, PATINDEX('%[0-9]%', m)-1) as a,
REPLACE(SUBSTRING(m, PATINDEX('%[0-9]%', m), LEN(m)),']','') as b from #tmpTbl
Run Code Online (Sandbox Code Playgroud)
替代方法:反转字符串,子串以删除第一个字符,反向返回
select LEFT(m, PATINDEX('%[0-9]%', m)-1) as a,
REVERSE(SUBSTRING(REVERSE(SUBSTRING(m, PATINDEX('%[0-9]%', m), LEN(m))),2,LEN(M))) as b from #tmpTbl
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
286 次 |
最近记录: |