Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Oder BY Problem (https://www.delphipraxis.net/86192-sql-oder-problem.html)

Jens Schumann 10. Feb 2007 18:07

Datenbank: Firebird • Version: 1.5.2.4731 • Zugriff über: IBX

SQL Oder BY Problem
 
Hallo,
ich hole aus einer Tabelle mit folgendem SQL 3 Datensätze.
SQL-Code:
SELECT id,picture FROM pictures WHERE (id=52) OR (id=18) OR (id=36)
id wird über einen Generator erzeugt ist der Primary Key der Tabelle. Deshalb kommen die Datensätze in der Reihenfolge
18
36
52
Jetzt möchte ich jedoch eine Reihenfolge vorgeben. Zum Beispiel
52
18
36

Hat Da jemand eine Idee?

mkinzler 10. Feb 2007 18:09

Re: SQL Oder BY Problem
 
Ich sehe dein Problem nicht:
SQL-Code:
SELECT id,picture FROM pictures WHERE (id=52) OR (id=18) OR (id=36) order by id

Jens Schumann 10. Feb 2007 18:11

Re: SQL Oder BY Problem
 
Hallo,
das Problem ist, das id der Primary Key und und mit einem Generator erzeugt wurde. Wenn ich nach id sortiere werden die Datensätze in der Reihenfolge ausgegeben in der sie in die Datenbank geschrieben wurden.
Ich möchte jedoch eine beliebige Reihenfolge vorgeben.

mkinzler 10. Feb 2007 18:14

Re: SQL Oder BY Problem
 
Und wie soll die Reihenfolge aussehen? (Logik)

omata 10. Feb 2007 18:14

Re: SQL Oder BY Problem
 
Vielleicht so...

SQL-Code:
SELECT 1 typ, id, picture
FROM pictures
WHERE id = 52

UNION

SELECT 2 typ, id, picture
FROM pictures
WHERE id = 18

UNION

SELECT 3 typ, id, picture
FROM pictures
WHERE id = 36

ORDER BY typ
Gruss
Thorsten

Jens Schumann 10. Feb 2007 18:20

Re: SQL Oder BY Problem
 
Hallo omata,
cool - ohne ORDER BY scheint es zu funktionieren.

omata 10. Feb 2007 18:46

Re: SQL Oder BY Problem
 
Mit ORDER BY kommt eine Fehlermeldung?

Versuch es mal so...
SQL-Code:
SELECT *
FROM (SELECT 1 AS typ, id, picture
      FROM pictures
      WHERE id = 52

      UNION

      SELECT 2 AS typ, id, picture
      FROM pictures
      WHERE id = 18

      UNION
 
      SELECT 3 AS typ, id, picture
      FROM pictures
      WHERE id = 36) x
ORDER BY typ
Es ist sicherer wenn das ORDER BY auch vorhanden ist.

Gruss
Thorsten

stahli 11. Feb 2007 09:49

Re: SQL Oder BY Problem
 
Was spricht dagegen, noch ein Feld "Position" einzuführen?
Dann braucht man die Ausgabereihenfolge nicht im Quelltext festlegen...

Stahli


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz