我正在通过 MS SQL Server 中的 OpenQuery 查询进度数据库。
我有一个字段 (addr),其中包含以下格式的字符串值:
text123; text 456; text 789; text 1011
我需要在分号之前提取每个值;对于单独的列
在 T SQL 中,我将使用以下内容提取第一部分:
SELECT
SUBSTRING(addr,1,CHARINDEX(';', addr,1) - 1)
FROM MyTable
但是,在 Progress 中没有 CHARINDEX,而是 INSTR
这是我的开放查询:
SELECT * FROM OPENQUERY (MyServer, 'SELECT addr, SUBSTRING("addr",1,INSTR('';'', "addr",1) - 1) as test FROM MyTable')
但我收到以下错误:
OLE DB provider "MSDASQL" for linked server "MyServer" returned message "[DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Error in row.".
我错过了什么?