Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Buchstabenkonvertierung in SQL (https://www.delphipraxis.net/172980-buchstabenkonvertierung-sql.html)

Codewalker 31. Jan 2013 17:05

Datenbank: MySQL • Version: 5.5.21 • Zugriff über: UniDAC

Buchstabenkonvertierung in SQL
 
Hallo zusammen.

Ich baue mir für ein Dataset eine Sortierspalte zusammen und möchte Buchstaben durch ihre jeweilige Position im Alphabet ersetzen. In Delphi kein Problem, ich brauche es aber innerhalb einer Stored Procedure in MySQL. Es funktioniert mit diesem Code:
Code:
   
SET VERSION = REPLACE(Str, 'a', '.1');
    SET VERSION = REPLACE(Str, 'b', '.2');
    SET VERSION = REPLACE(Str, 'c', '.3');
    SET VERSION = REPLACE(Str, 'd', '.4');
    SET VERSION = REPLACE(Str, 'e', '.5');
    SET VERSION = REPLACE(Str, 'f', '.6');
    SET VERSION = REPLACE(Str, 'g', '.7');
    SET VERSION = REPLACE(Str, 'h', '.8');
    SET VERSION = REPLACE(Str, 'i', '.9');
usw.
Aber kann man das nicht kompakter hinkriegen? Für Großbuchstaben müsste ich das ja nochmal bauen :(

DeddyH 31. Jan 2013 17:09

AW: Buchstabenkonvertierung in SQL
 
Hilft Dir das hier weiter? http://www.w3resource.com/mysql/stri...d-function.php

Codewalker 31. Jan 2013 17:14

AW: Buchstabenkonvertierung in SQL
 
Stimmt, daran hab ich gar nicht gedacht:
Code:
SELECT ord(LOWER('a'))-96 FROM DUAL
Jetzt muss ich das nur noch hinkriegen, dass alle Vorkommen ersetzt werden und das nur auf Buchstaben angewendet wird. Mein String ist z.B. eine Versionsnummer wie 2.63b und daraus soll dann 2.63.2 werden


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