使用Charindex获取字符的剩余数据

时间:2019-02-11 14:57:16

标签: sql string sybase advantage-database-server

我有一个名为subjects的字段,数据如下所示:

ALJ Diane Davis - WCF

我希望我的最终结果是:

ALJ Diane Davis

我正在尝试将所有数据保留在“-”的左侧 我也在使用Advantage SQL,这也是我的新手。

下面使用RIGHT函数的示例使我在需要的所有内容都可以正确使用,但是我并不总是知道确切的字符数,因为我希望我的数据以这种方式结束

预先感谢

left(appts.subject,charindex('-',appts.subject)

left(appts.subject,char('-',appts.subject)-1)

right(rtrim(appts.subject),6)

2 个答案:

答案 0 :(得分:1)

这应该给您结果。定位是该功能在Adavantage-Sql中起作用。您可以使用此link

  

FunctionLOCATE(str1,str2 [,start])

     

返回整数位置   str2中str1的(从1开始),带有可选的开始起点。   如果在str2中未找到str1,则返回0。

SELECT SUBSTRING('ALJ Diane Davis - WCF', 1, locate('-', 'ALJ Diane Davis - WCF') - 1)

答案 1 :(得分:0)

这行不通吗?

left(appts.subject, charindex('-', appts.subject) - 1)

如果由于并非所有受试者都拥有-而失败,则:

left(appts.subject, charindex('-', appts.subject + '-') - 1)

以上内容适用于Sybase。在Advantage SQL中,我认为您需要location

left(appts.subject, locate('-', appts.subject) - 1)