R语言SQLite查询报near "."语法错误,求解决方法
解决SQLite语法报错的方案
问题根源
报错near "." syntax error的核心原因有两个:
- 字段名包含
.(点)这类特殊字符,SQLite会默认解析为「表名.字段名」的结构,而非单个字段 - 字符串常量(如
OUTBOUND、CALL)未加引号,被误判为字段名
具体修正步骤
- 给含特殊字符的字段名加反引号:用
`包裹所有带点的字段,明确告诉SQLite这是单个字段名 - 给字符串常量加单引号:所有字符串值(比如状态、分组名称)必须用
'包裹,区分于字段名
修正后的完整代码
q1 <- dbGetQuery(conn, "SELECT `UNIQUELETTERCODE_y`, `COMPLETION.MODE`, `COMPLETED.BY`, `Current.Status`, `Completed.by.which.group` FROM Daily_Returns WHERE AgentName IS NULL AND CASEID IS NULL AND `Completed.by.which.group` = 'OUTBOUND' AND `Current.Status` = 'Completed' AND (`COMPLETED.BY` = 'CALL' OR `COMPLETED.BY` = 'CISCO' OR `COMPLETED.BY` = 'MOBILE') AND `COMPLETION.MODE` = 'CALL' GROUP BY `UNIQUELETTERCODE_y` ")
补充说明
- 反引号是多数SQL数据库通用的特殊字段名包裹方式,也可以用双引号
"替代,但反引号兼容性更强 - 执行前确认字段名、表名拼写和数据库中的实际名称完全一致,避免大小写或拼写错误
内容的提问来源于stack exchange,提问作者Wen Qing
相关产品推荐
相关产品推荐

