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

前端之家收集整理的这篇文章主要介绍了sql – 在SELECT语句中提取分隔值右侧的字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要提取连字符右侧的所有字符作为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()和前两个参数被切换,首先它是你正在搜索的字符串,然后是你正在搜索的字符串.

猜你在找的MsSQL相关文章