如何修复‘(’附近语法错误?合并6个月骑行数据表遇问题
解决SQL合并表报错"Incorrect syntax near '('"的问题
错误原因
你使用的CREATE TABLE biketrip AS (子查询)语法存在问题:
- 多数支持
CREATE TABLE AS的数据库(如MySQL、PostgreSQL)不需要将子查询用括号包裹,多余的括号直接导致语法错误; - 从
bike..['202301-divvy-tripdata$']的表名格式来看,你大概率在用SQL Server,而SQL Server本身不支持CREATE TABLE AS语法,必须改用SELECT INTO来创建新表并插入数据。
解决方案
方案1:适用于支持CREATE TABLE AS的数据库(MySQL、PostgreSQL等)
移除子查询外的括号即可:
CREATE TABLE biketrip AS SELECT * FROM bike..['202301-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202302-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202303-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202304-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202305-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202306-divvy-tripdata$']
方案2:适用于SQL Server
改用SELECT INTO语法,该语法会自动创建新表并将查询结果插入其中:
SELECT * INTO biketrip FROM bike..['202301-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202302-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202303-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202304-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202305-divvy-tripdata$'] UNION ALL SELECT * FROM bike..['202306-divvy-tripdata$']
内容的提问来源于stack exchange,提问作者lala ahmed
相关产品推荐
相关产品推荐

