Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Firebird 3.0 Order mit Feldname bei Union

  Alt 12. Aug 2021, 08:28
Code:
SELECT *
FROM TABLE1

UNION

SELECT *
FROM TABLE2

ORDER BY 18
Der Feldname wäre hier sicherer.

Hat jemand eine Idee?
Der Feldname ist nicht nur da sicherer, sondern auch da zu benutzen, wo du bisher dir mit * das leben einfach machst

Sobald eine der Tabellen in rdb$relation_fields auch nur eine andere Reihenfolge bekommt, wird dir deine
Konstruktion Felder zusammenbauen, die nix mitienander zu tun haben, kann auch dann zB die Spalte
18 sein, nach der zufälig gerade sortieren willst. Die reihenfolge ändert man zwar nicht zufällig,
aber wenn doch, hast du einen rattenschwanz an problemen. Wenn nur eines der beiden Tabellen neue Felder bekommt,
wird die Anweisung eh fehlerhaft sein und nicht ausgeführt werden können.

Löse am besten das Problem gleich da wo es weit größer werden wird als nur bei dem Komfort. im Order by lesbarere
Namen zu haben.

Interaktiv einfach mal mit select * aubzurufen, was da kommt, ist immer legitim, in einer dauerhaft genutzen
SQL Anweisung sollte das immer vermieden werden.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat