微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SELECT语句中的分隔值右侧提取字符

如何解决在SELECT语句中的分隔值右侧提取字符

这个问题有一个特定于数据库的答案。

如果使用sql Server:

SELECT column1
     , RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
     , column3 
FROM myTable

您可以添加CASE语句或NULLIF()在连字符不总是出现的情况下使用:

SELECT column1
     , CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) 
           END as extracted
     , column3 
FROM myTable

或者:

SELECT column1
     , RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
     , column3 
FROM myTable

如果使用MysqL,请更改CHARINDEX()LOCATE()。我相信它是Oracle,INstr()并且前两个参数已切换,首先是您要搜索的字符串,然后是您要搜索的字符串。

解决方法

我需要提取连字符右边的所有字符作为select语句的一部分。选择中将有其他列。在下面的查询中,从第二列中选择了右边的三个字符。我如何提取定界符右边的不定数量的字符(在我的情况下为连字符)?我可以使用正确的功能吗?我需要使用其他功能吗?

Select column1,right(column2,3) as extracted,column3
From myTable

我正在使用SQL Server 2008。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。