本文将MaxCompute SQL与Hive、MySQL、Oracle、SQL Server的SQL语法进行对比,为您介绍MaxCompute对这些数据库常见SQL语法的支持情况。
MaxCompute DDL语法差异对比
语法  | MaxCompute  | Hive  | MySQL  | Oracle  | SQL Server  | 
CREATE TABLE—PRIMARY KEY  | Y  | N  | Y  | Y  | Y  | 
CREATE TABLE—NOT NULL  | Y  | N  | Y  | Y  | Y  | 
CREATE TABLE—CLUSTER BY  | Y  | Y  | N  | Y  | Y  | 
CREATE TABLE—EXTERNAL TABLE  | Y (OSS, OTS, TDDL)  | Y  | N  | Y  | N  | 
CREATE TABLE—TEMPORARY TABLE  | N  | Y  | Y  | Y  | Y (with #prefix)  | 
INDEX—CREATE INDEX  | N  | Y  | Y  | Y  | Y  | 
VIRTUAL COLUMN  | N  | N  | N  | Y  | Y  | 
MaxComputeDML语法差异对比
语法  | MaxCompute  | Hive  | MySQL  | Oracle  | SQL Server  | 
CTE  | Y  | Y  | Y  | Y  | Y  | 
SELECT—recursive CTE  | N  | N  | Y  | Y  | Y  | 
SELECT—GROUP BY ROLL UP  | Y  | Y  | Y  | Y  | Y  | 
SELECT—GROUP BY CUBE  | Y  | Y  | N  | Y  | Y  | 
SELECT—GROUPING SET  | Y  | Y  | N  | Y  | Y  | 
SELECT—IMPLICT JOIN  | Y  | Y  | N  | Y  | Y  | 
SELECT—PIVOT  | N  | N  | N  | Y  | Y  | 
SEMI JOIN  | Y  | Y  | Y  | N  | N  | 
SELECT TRANSFORM  | Y  | Y  | N  | N  | N  | 
SELECT—corelated subquery  | Y  | Y  | Y  | Y  | Y  | 
ORDER BY NULLS FIRST/LAST  | Y  | Y  | Y  | Y  | Y  | 
LATERAL VIEW  | Y  | Y  | N  | Y  | Y (CROSS APPLY keyword)  | 
SET OPERATOR—UNION (disintct)  | Y  | Y  | Y  | Y  | Y  | 
SET OPERATOR—INTERSECT  | Y  | N  | N  | Y  | Y  | 
SET OPERATOR—MINUS/EXCEPT  | Y  | N  | N  | Y  | Y(keyword EXCEPT)  | 
INSERT INTO ... VALUES  | Y  | Y  | Y  | Y  | Y  | 
INSERT INTO (ColumnList)  | Y  | Y  | Y  | Y  | Y  | 
UPDATE … WHERE  | Y  | Y  | Y  | Y  | Y  | 
DELETE … WHERE  | Y  | Y  | Y  | Y  | Y  | 
MERGE INTO  | Y  | Y  | N  | Y  | Y  | 
ANALYTIC—reusable WINDOWING CLAUSE  | Y  | Y  | N  | N  | N  | 
ANALYTIC—CURRENT ROW  | Y  | Y  | N  | Y  | Y  | 
ANALYTIC—UNBOUNDED  | Y  | N  | Y  | Y  | Y  | 
ANALYTIC—RANGE …  | N  | Y  | N  | Y  | Y  | 
WHILE DO  | N  | N  | Y  | Y  | Y  | 
Y  | N  | N  | N 说明  SQL Function/Storage Procedure一定程度上能满足MaxCompute参数化VIEW的功能。  | N  | 
MaxCompute SCRIPTING语法差异对比
语法  | MaxCompute  | Hive  | MySQL  | Oracle  | SQL Server  | 
TABLE VARIABLE  | Y  | Y  | Y  | Y  | Y  | 
SCALER VARIABLE  | Y  | Y  | Y  | Y  | Y  | 
ERROR HANDLING—RAISE ERROR  | N  | N  | Y  | Y  | Y  | 
ERROR HANDLING—TRY CATCH  | N  | N  | N  | Y  | Y  | 
FLOW CONTROL—LOOP  | N  | N  | Y  | Y  | Y  | 
CURSOR  | N  | N  | Y  | Y  | Y  |