sql >> Databasteknik >  >> RDS >> Mysql

Vad säger SQL-standarden om parenteser i SQL UNION/EXCEPT/INTERSECT-satser?

Det finns inget behov av parenteser/parenteser i ett UNION-uttalande.

MySQL är den enda jag känner till just nu, vilket gör att du kan definiera ORDER BY och LIMIT satser som är specifika för varje fråga så länge frågan är omgiven av parentes -- standard SQL tillåter bara en ORDER BY för det slutliga resultatet. GROUP BY och HAVING satser är specifika för varje fråga som utgör UNION'd-satsen.

MySQL stöder:

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

...vilket inte kommer att orsaka slut på sorg om du vill/behöver porta till andra databaser.

Standard SQL tillåter endast:

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


  1. NCHR() Funktion i Oracle

  2. Hur uppdaterar man valda rader med värden från en CSV-fil i Postgres?

  3. Hur man använder RANK() i SQL Server

  4. PHP/PDO/MySQL:infogning i MEDIUMBLOB lagrar dålig data