sql – 在SELECT语句中提取分隔值右侧的字符
发布时间:2020-12-12 06:44:12 所属栏目: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()和前两个参数被切换,首先它是你正在搜索的字符串,然后是你正在搜索的字符串. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |