从文本中提取数字

Substringing from a text a number

从以下 session 的字符串值开始,我只想保留第一个数字大或最后一个 | 开始的部分

session
nea|fact|za|ninja|web|14ff95092e3x1d214cd2
nea|fact|za|ninja|web|15001274f5ex323c9f96
nea|fact|za|ninja|web|1502897832ax418ecf1a
nea|fact|za|ninja|web|150399c1418x215f0e52
nea|fact|za|ninja|web|1503b3cdf02x386fc450
ta|fact|za|ninja|web|1503b3cdf02x386fc450
ta|fact|za|ninja|web|1503b3cdf02x386fc450

预期结果

14ff95092e3x1d214cd2
15001274f5ex323c9f96
1502897832ax418ecf1a
150399c1418x215f0e52
1503b3cdf02x386fc450
1503b3cdf02x386fc450
1503b3cdf02x386fc450

如果你的数据库 mysql 那么 SUBSTRING_INDEX 会帮助你

select SUBSTRING_INDEX(session, "|", -1);

示例:

select SUBSTRING_INDEX('nea|fact|za|ninja|web|14ff95092e3x1d214cd2', "|", -1);
returned: 14ff95092e3x1d214cd2

在mysqlstring related function

对于 Sql 服务器,您的查询将是

SELECT RIGHT(session , CHARINDEX ('|' ,REVERSE(session))-1)

对于 sql 服务器:

declare @test varchar(1000) = 'nea|fact|za|ninja|web|14ff95092e3x1d214cd2'

SELECT RIGHT(@test , CHARINDEX ('|' ,REVERSE(@test))-1)

在 Oracle 中 -

SELECT SUBSTR(session, '|', -1)
FROM TABLE_NAME;