2015-11-04 81 views
1

我正在尝试创建一个正在查询进程数据库,从电子邮件地址获取名称部分。这是我到目前为止有:进度数据库charindex语法错误

substring("PUB"."NAME"."INTERNET-ADDRESS", 1, CHARINDEX('@', "PUB"."NAME"."INTERNET-ADDRESS")) as Name 

但是,我得到一个语法错误各地CHARINDEX(...

我不是一个进步的家伙,知道SQL仅仅是足以让我惹麻烦......

你在我的方式看到错误

+0

你可以分享你整个查询吗? – Mureinik

+0

我断开连接,无法重新进入... = /我正在与客户进行远程会话来完成此操作。 – DaBlue

+0

我还应该提到,“酒吧”,“名称”,“互联网地址”确实会返回结果,如预期的那样没有子串部分... – DaBlue

回答

3

试试这个:

子( “PUB” “姓名”, “INTERNET的地址”,1,INSTR(。 “PUB”。 “NAME”, “INTERNET的地址”, '@' ))。

在这里,你有文件的整个套件: https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1329.openedge-product-documentation-overview

+0

几乎可以工作......我做过 substring(“PUB”。 “NAME”,“INTERNET-ADDRESS”,1,INSTR(“PUB”,“NAME”,“INTERNET-ADDRESS”,'@')-1)并且查询运行但是我得到一个错误HY000 Bad Arguments(7487)如果我删除-1我没有得到一个错误,但它包含'@'。奇怪,我得到的错误,它仍然运行虽然... – DaBlue

+0

没关系;这是因为有一条记录没有地址。谢谢,Jensd。 – DaBlue

+0

谢谢!我以为CHARINDEX是在SQL-92中,但INSTR的确有窍门! – Bret