我有一个名为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)
答案 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)