加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

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

发布时间:2020-05-24 13:03:26 所属栏目:MsSql 来源:互联网
导读:我需要提取连字符右侧的所有字符作为select语句的一部分.选择中将有其他列.在下面的查询中,从第二列中选择了右边的三个字符.如何在分隔符的右边提取无限数量的字符 – 在我的例子中是连字符?我可以使用正确的功能吗?我需要使用其他功能吗? Select column1,

我需要提取连字符右侧的所有字符作为select语句的一部分.选择中将有其他列.在下面的查询中,从第二列中选择了右边的三个字符.如何在分隔符的右边提取无限数量的字符 – 在我的例子中是连字符?我可以使用正确的功能吗?我需要使用其他功能吗?

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

我正在使用SQL Server 2008.

解决方法

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

如果使用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,REVERSE(column2))-1) 
           END as extracted,column3 
FROM myTable

要么:

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

如果使用MySQL,只需将CHARINDEX()更改为LOCATE().我相信Oracle它的INSTR()和前两个参数被切换,首先它是你正在搜索的字符串,然后是你正在搜索的字符串.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读