我有一個MS Access數據庫(Access 2002,用於記錄)。它有一個名稱包含問號的列,例如,表「用戶」列「uid」和「isAdmin?」。我需要通過ODBC連接該數據庫,並查詢此列,大意如下:如何通過ODBC查詢名稱有問號的MS Access列?
select [uid], [isAdmin?] from Users order by [isAdmin?];
如何逃避列名的問號,這樣的MS Access ODBC驅動程序不認爲這是一個查詢參數?這個查詢不使用任何參數,所以如果我完全禁用它們就沒關係。
一些限制:
- 我不能輕易改變的列名。
- 我不能輕易使用ODBC以外的其他方式進行連接,但如果我無法獲得ODBC的行爲,這可能是我的備用計劃。
- 我不能說
select * from Users
- 它仍然會按順序嗆(這在實際查詢中很複雜,所以真的需要在SQL中完成)。
事情我已經試過了不起作用:
select [uid], '[isAdmin?]' from Users;
- 這使得第二列是字符串 「[isAdmin?]」select [uid], ['isAdmin?'] from Users;
select [uid], [isAdmin\?] from Users;
select [uid], [isAdmin\?] {escape '\'} from Users;
- 也沒有任何其他轉義字符的工作。select [uid], { [isAdmin?] } from Users;
編輯:我應該澄清,我不能輕易更改數據庫的威力,除了通過ODBC(或ADO或DAO或什麼的,但是這將是一個有點棘手,並在那一點上,我可以通過這些運行查詢)。
在列名問號!在MS Access團隊中授權的人應該受到懲罰,並在未來10年內專門爲MacDo提供服務! – 2009-09-11 10:35:39