本文将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 |