sql >> Database teknologi >  >> RDS >> Mysql

Er der en generisk løsning til at udtrykke en afledt kolonneliste i Oracle (og MySQL)?

Til en MySQL-løsning kan du bruge en UNION for at angive navnene på alle kolonnerne i et nulrækkeforespørgselsudtryk og derefter forespørge på noget mere komplekst:

SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...

Kun det første forespørgselsudtryk i en UNION definerer kolonnenavnene for hele forespørgslen. Kolonnenavne (eller mangel på samme) i efterfølgende søgetermer påvirker ikke de endelige kolonnenavne.

Du skal kende nummeret af kolonner, men det burde være ret nemt at holde de to forespørgselsudtryk adskilt. Så vidt jeg ved, virker det i både Oracle og MySQL (jeg har dog kun testet det i MySQL, ikke i Oracle).



  1. Bedste praksis for at oprette indekser på dine MySQL-tabeller – Rullende indeksbygninger

  2. En oversigt over indeksændringerne i PostgreSQL 11

  3. Udfør dynamisk forespørgsel med go i sql

  4. Returner kolonneprivilegier fra en sammenkædet server i SQL Server (T-SQL-eksempler)