本文将MaxCompute SQL与Hive、MySQL、Oracle、SQL Server的SQL语法进行对比,为您介绍MaxCompute不支持的语法。

MaxComputeDDL语法差异对比

语法 MaxCompute Hive MySQL Oracle SQL Server
CREATE TABLE—PRIMARY KEY N 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 N 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 N 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
VIEW WITH PARAMETERS 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