Я связан с Proficy Historian, который допускает точки в именах столбцов. Поскольку данные хранятся в формате, отличном от СУБД, я не могу использовать openquery
для получения данных, поскольку в таблицах нет заданной схемы. Поэтому я должен использовать синтаксис из четырех частей для получения данных. Этот пример работает:
SELECT * FROM iHist...[SELECT * FROM ihTrend]
но это не так с Неверный синтаксис рядом с '.'.
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07][0].F_CV.Value] FROM ihTrend]
где SERVER.pid_astatus[07][0].F_CV.Value
- имя столбца
Это также не работает с Неверный синтаксис рядом с ключевым словом 'from'.
SELECT * FROM
iHist...[SELECT [SERVER.pid_astatus[[07]][[0]].F_CV.Value] from ihTrend]`
Любые идеи о том, как заставить SQL Server видеть это в виде столбца?
EDIT:
Предложение Мартинса о правильных скобках, чтобы избежать скобок, работает только на внешней стороне вызова SQL
SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM iHist...[SELECT * FROM ihTrend]
Однако он не работает внутри Неверный синтаксис рядом с ключевым словом 'from'.
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value] FROM ihTrend]
EDIT
SELECT * FROM iHist...[SELECT [SERVER.pid_astatus[07]][0]].F_CV.Value]] FROM ihTrend]
Я должен был сбежать из колонны, бежать:)