Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOQuery SQL und REPLACE (https://www.delphipraxis.net/142136-adoquery-sql-und-replace.html)

msickel 22. Okt 2009 14:47

Datenbank: MSSQL EXPRESS • Zugriff über: ADO

ADOQuery SQL und REPLACE
 
Ich versuche folgendes

Delphi-Quellcode:
Select
  LocalUser,
  LocalNumber
from
  CallDetail
soweit geht das, nun möchte ich in diesem Select gleichzeitig ein REPLACE machen und habe das so Versucht

Delphi-Quellcode:
Select
  LocalUser,
  Replace(LocalNumber,'0UNKOWNNAME0','unbekannt')
from
  CallDetail
leider bleibt dann der Select von LocalNumer komplett leer, wie muss ich das richtig machen?

Vielen Dank für Eure Hilfe

Martin

x000x 22. Okt 2009 15:39

Re: ADOQuery SQL und REPLACE
 
Moin moin,

das wäre eine Möglichkeit...

SQL-Code:
Select
  LocalUser,
  case when CHARINDEX('0UNKOWNNAME0', LocalNumber) > 0 then
    Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') else LocalNumber end
from
  CallDetail
Edit: expression1 und expression2 waren vertauscht

msickel 22. Okt 2009 17:27

Re: ADOQuery SQL und REPLACE
 
Cool, DAnke, werde ich morgen gleich mal ausprobieren

mfg
Martin

msickel 23. Okt 2009 07:39

Re: ADOQuery SQL und REPLACE
 
geht leider nicht, nachwievor bleibt das komplette feld leer, woran könnte es noch liegen?

sniper_w 23. Okt 2009 08:39

Re: ADOQuery SQL und REPLACE
 
Es liegt daran dass das Feld keinen Namen zugewiesen hat.
So sollte es gehen:
SQL-Code:
Select
  [LocalUser],
  [LocalNumber] = Replace(LocalNumber,'0UNKOWNNAME0','unbekannt')
from
  CallDetail
oder
SQL-Code:
Select
  [LocalUser],
  [LocalNumber] = case when CHARINDEX('0UNKOWNNAME0', LocalNumber) > 0 then
    Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') else LocalNumber end
from
  CallDetail

x000x 23. Okt 2009 09:37

Re: ADOQuery SQL und REPLACE
 
Moin moin,
SQL-Code:
Select
  LocalUser,
  Replace(LocalNumber,'0UNKOWNNAME0','unbekannt'),
  LocalNumber
from
  CallDetail
was steht denn in dem Fall in LocalNumber (3. Feld)? Das müsset dann ja auch leer sein?!

msickel 23. Okt 2009 09:42

Re: ADOQuery SQL und REPLACE
 
@sniper

wenn ich es so versuche bekomme ich die Fehlermeldung "incorrect syntax near ="

git es noch eine andere Variante?

sniper_w 23. Okt 2009 09:57

Re: ADOQuery SQL und REPLACE
 
Hmmm... :gruebel:
So?
SQL-Code:
Select
  LocalUser,
  Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') AS LocalNumber
from
  CallDetail
SQL-Code:
Select
  LocalUser,
  case when CHARINDEX('0UNKOWNNAME0', LocalNumber) > 0 then
    Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') else LocalNumber end AS LocalNumber
from
  CallDetail

x000x 23. Okt 2009 14:26

Re: ADOQuery SQL und REPLACE
 
Moin moin,

ich denke mal, mein "case when" kannste getrost vergessen, denn Replace macht das ja schon und ersetzt nur das vorkomen von '0UNKOWNNAME0'.
Ist denn das Ergebnis leer oder die Feldnamen?!
Eventuell schreibst du mal, wie dein gewünschtes Ergebnis aussehen sollte, also etwa so:
Code:
LocalUser | LocalNumber
------------------------
Username1 | 123
------------------------
Username2 | 1unbekannt3
------------------------
          |
...
Wenn ja, dann funktioniert es genauso wie sniper_w es im letzten Beitrag geschrieben hat. Wenn nicht, dann teile uns bitte mal dein gewünschtes Ergebnis mit.

msickel 23. Okt 2009 19:34

Re: ADOQuery SQL und REPLACE
 
Zitat:

Zitat von x000x
Moin moin,

ich denke mal, mein "case when" kannste getrost vergessen, denn Replace macht das ja schon und ersetzt nur das vorkomen von '0UNKOWNNAME0'.
Ist denn das Ergebnis leer oder die Feldnamen?!
Eventuell schreibst du mal, wie dein gewünschtes Ergebnis aussehen sollte, also etwa so:
Code:
LocalUser | LocalNumber
------------------------
Username1 | 123
------------------------
Username2 | 1unbekannt3
------------------------
          |
...
Wenn ja, dann funktioniert es genauso wie sniper_w es im letzten Beitrag geschrieben hat. Wenn nicht, dann teile uns bitte mal dein gewünschtes Ergebnis mit.

genau so sollte es aussehen, aber wenn ich es so mache wie im letzten Beitrag von Sniper sieht es leider so aus

LocalUser | LocalNumber
------------------------
Username1 | 123
------------------------
Username2 |
------------------------
|

mfg
Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 Uhr.
Seite 1 von 2  1 2      

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