Teradata YES YES YES YES YES YES YES INNER JOIN YES YES YES YES UNION YES NO INTERSECT YES NO MINUS YES NO YES YES YES NO QUALIFY YES YES YES NO CSUM,MAVG,MDIFF,MLINREG,MSUM,RANK,QUANTILE,PERCENT_RANK YES YES YES NO YES { FN YEAR($D) } ((EXTRACT(MONTH FROM $D)+2)/3) { FN MONTH($D) } + - * / || NOT OR AND IS NOT NULL IS NULL >= <= = ^= > < IN NOT IN LIKE NOT LIKE BETWEEN AND NOT BETWEEN AND min($1) max($1) avg($1) sum($1) count($1) {fn concat($1,$2)} {fn left($1,$2)} {fn length($1)} {fn locate($1,$2)} {fn rtrim($1)} {fn substring($1,$2,$3)} {fn ucase($1)} {fn abs($1)} {fn exp($1)} {fn log($1)} {fn mod($1,$2)} {fn pi()} {fn sqrt($1)} @prompt($1,'A',,,) @prompt($1,'N',,,) @prompt($1,'D',,,) TRIM (TRAILING FROM $1) TRIM (LEADING FROM $1) TRIM (BOTH FROM $1) CASE $1 WHEN $2 THEN $3 ELSE $4 END NULLIF($1, $2) COALESCE($1) EXTRACT(YEAR FROM $1) EXTRACT(MONTH FROM $1) EXTRACT(DAY FROM $1) EXTRACT(HOUR FROM $1) EXTRACT(MINUTE FROM $1) EXTRACT(SECOND FROM $1) ADD_MONTHS($1, $2) DATE CSUM($1,$2) MAVG($1,$2,$3) RANK($1) MSUM($1,$2,$3) MDIFF($1,$2,$3) QUANTILE($1,$2) MLINREG($1,$2,$3) CAST($1 AS CHAR(30)) CAST($1 AS CHAR(30)) RANK() OVER (PARTITION BY ($1) ORDER BY ($2)) PERCENT_RANK() OVER (PARTITION BY ($1) ORDER BY ($2)) CASE $1 END COALESCE($1,$2)