Mysql
 sql >> Base de données >  >> RDS >> Mysql

Que dit la norme SQL à propos des parenthèses dans les instructions SQL UNION/EXCEPT/INTERSECT ?

Il n'y a pas besoin de crochets/parenthèses dans une instruction UNION.

MySQL est le seul que je connaisse pour le moment, qui vous permet de définir ORDER BY et LIMIT clauses spécifiques à chaque requête tant que la requête est entre parenthèses -- le SQL standard n'autorise qu'un ORDER BY pour le résultat final. Le GROUP BY et HAVING les clauses sont spécifiques à chaque requête qui compose l'instruction UNION'd.

MySQL prend en charge :

 (SELECT a.column
    FROM A_TABLE a
ORDER BY a.column DESC)
UNION
SELECT b.column
  FROM B_TABLE b

...ce qui ne causera pas de soucis si vous voulez/avez besoin de transférer vers d'autres bases de données.

Le SQL standard permet uniquement :

SELECT a.column
  FROM A_TABLE a
UNION
SELECT b.column
  FROM B_TABLE b
ORDER BY column DESC