2013-10-04 15 views
0

我試圖運行的ProjectWise的SQL Server數據庫實例的ADODB查詢,使用下列字符串定義的查詢:')'附近的語法不正確,子字符串()或charindex()可能不正確的使用?

select 
dms_audt.o_acttime as actionTime, 
dms_stat.o_statename as state, 
dms_doc.o_filename as filename, 
dms_doc.o_projectno as project 
from dms_audt 
inner join 
dms_stat 
on dms_audt.o_numparam2=dms_stat.o_stateno 
inner join dms_doc on dms_audt.objguid=dms_doc.o_docguid 
where substring(dms_doc.o_filename,1,4)="abcd") 
and charindex(dms_doc.o_filename,"efgh")=0 

VBA是給我的一個運行時錯誤:

​​

這讓我認爲我錯誤地使用了substring()charindex()。無論是否使用單引號或雙引號包裝abcdefgh字符串,我都收到此錯誤。任何想法我在這裏做錯了嗎?

回答

5

你有一個額外的支架。

這個>where substring(dms_doc.o_filename,1,4)="abcd") and charindex(dms_doc.o_filename,"efgh")=0

需要是:

where substring(dms_doc.o_filename,1,4)='abcd' and charindex(dms_doc.o_filename,'efgh')=0

+1

應該是單引號。雙引號會錯誤地期待一個名爲'[abcd]'的列。 –

+0

@AaronBertrand好的,謝謝Aaron。錯過了。 – codingbadger

+0

太好了,謝謝!我的工作站上沒有安裝SQL Server;有沒有一個好的在線調試器可以用來追蹤這種語法問題?我嘗試了SQLFiddle,它只是給了我同樣的錯誤。 – sigil