Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi "Order by Upper(3)" geht nicht (https://www.delphipraxis.net/129296-order-upper-3-geht-nicht.html)

ralfiii 16. Feb 2009 17:27

Datenbank: Firebird • Version: 2.1 • Zugriff über: Interbase Express

"Order by Upper(3)" geht nicht
 
Ich hab ein Statement

SQL-Code:
Select PATIENT_ID,
       CUSTOMID,
       SURNAME || " " || FIRSTNAME as PatName,
       DOB
from PATIENTS
Will ich das case-unsensitiv nach Namen sortieren, müsste ich doch normalerweise einfach
"Sort by upper(3)" anhängen können. Das geht aber nicht.

Nur "order by upper(SURNAME || " " || FIRSTNAME)" geht.

Warum?
Danke!

[edit=Sharky]Delphi-Tags in SQL-Tags geändert. Mfg, Sharky[/edit]

shmia 16. Feb 2009 17:37

Re: "Order by Upper(3)" geht nicht
 
ORDER BY erwartet einen Feldliste, einen Feldindex (Zahl von 1 bis ...) oder einen Ausdruck.
UPPER() erwartet dagegen nur einen Feldnamen oder einen Ausdruck, der ein String ist.

Das ist jetzt etwas verkürzt ausgedrückt; die genaue Syntax kann man aus der BNF ermitteln:
http://savage.net.au/SQL/sql-99.bnf....%20by%20clause

hoika 17. Feb 2009 07:03

Re: "Order by Upper(3)" geht nicht
 
Hallo,

SQL-Code:
Select PATIENT_ID,
       CUSTOMID,
       SURNAME || " " || FIRSTNAME as PatName,
       UPPER(SURNAME || " " || FIRSTNAME as PatName),
       DOB
From PATIENTS
Order By 4
Solange du es nicht in einem DBGrid anzeigst, sollte das gehen.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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