使用SQL 2008
ID: C/213434343434334, CA/2566121212122
从上面的id,我想只采取数字。如何实现这个
必需的输出
213434343434334, 2566121212122
需要查询帮助
答案 0 :(得分:2)
试试这种方式
DECLARE @str VARCHAR(400)
DECLARE @expres VARCHAR(50) = '%[a-z,/]%'
SET @str = 'CA/2566121212122'
WHILE PATINDEX( @expres, @str ) > 0
SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ')
SELECT @str
答案 1 :(得分:1)
SELECT substring(ID,charindex('/',ID)+1,len (ID)-charindex('/',ID)) New_Id
FROM [YOUR TABLE]
答案 2 :(得分:0)
如果所有字符都在特殊字符'/'前面,您可以使用以下内容:
DECLARE @ID1 nvarchar(200) = 'C/213434343434334',
@ID2 nvarchar(200) = 'CA/2566121212122'
SELECT RIGHT(@ID1, CHARINDEX('/', REVERSE(@ID1))-1)
SELECT RIGHT(@ID2, CHARINDEX('/', REVERSE(@ID2))-1)
结果:
RESULT @ID1 : 213434343434334
RESULT @ID2 : 2566121212122
希望这有帮助
答案 3 :(得分:0)
使用SUBSTRING()获取结果。
CREATE TABLE #Test
(
ID NVARCHAR(MAX)
)
INSERT INTO #Test
SELECT 'C/213434343434334' UNION
SELECT 'CA/2566121212122'
SELECT SUBSTRING(ID, CHARINDEX('/', ID)+ 1, LEN(ID)) AS ID FROM #Test