从文本中将数字子串化

时间:2018-08-13 18:03:10

标签: sql extract

从以下字符串值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

3 个答案:

答案 0 :(得分:2)

如果您的数据库是mysql,那么SUBSTRING_INDEX将为您提供帮助

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

示例:

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

在mysql string related function

对于Sql Server,您的查询将

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

答案 1 :(得分:1)

对于sql server:

aws ec2 describe-instances --instance-id ${INSTANCE_ID} --output table --query 'Reservations[].Instances[].[[Tags[?Key==`Name`].Value,KeyName,PrivateIpAddress,SubnetId,SecurityGroups[].GroupId][]]' --region ${AWS_DEFAULT_REGION}

答案 2 :(得分:1)

在Oracle中-

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