![]() |
Datenbank: MSSQL EXPRESS • Zugriff über: ADO
ADOQuery SQL und REPLACE
Ich versuche folgendes
Delphi-Quellcode:
soweit geht das, nun möchte ich in diesem Select gleichzeitig ein REPLACE machen und habe das so Versucht
Select
LocalUser, LocalNumber from CallDetail
Delphi-Quellcode:
leider bleibt dann der Select von LocalNumer komplett leer, wie muss ich das richtig machen?
Select
LocalUser, Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') from CallDetail Vielen Dank für Eure Hilfe Martin |
Re: ADOQuery SQL und REPLACE
Moin moin,
das wäre eine Möglichkeit...
SQL-Code:
Edit: expression1 und expression2 waren vertauscht
Select
LocalUser, case when CHARINDEX('0UNKOWNNAME0', LocalNumber) > 0 then Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') else LocalNumber end from CallDetail |
Re: ADOQuery SQL und REPLACE
Cool, DAnke, werde ich morgen gleich mal ausprobieren
mfg Martin |
Re: ADOQuery SQL und REPLACE
geht leider nicht, nachwievor bleibt das komplette feld leer, woran könnte es noch liegen?
|
Re: ADOQuery SQL und REPLACE
Es liegt daran dass das Feld keinen Namen zugewiesen hat.
So sollte es gehen:
SQL-Code:
oder
Select
[LocalUser], [LocalNumber] = Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') from CallDetail
SQL-Code:
Select
[LocalUser], [LocalNumber] = case when CHARINDEX('0UNKOWNNAME0', LocalNumber) > 0 then Replace(LocalNumber,'0UNKOWNNAME0','unbekannt') else LocalNumber end from CallDetail |
Re: ADOQuery SQL und REPLACE
Moin moin,
SQL-Code:
was steht denn in dem Fall in LocalNumber (3. Feld)? Das müsset dann ja auch leer sein?!
Select
LocalUser, Replace(LocalNumber,'0UNKOWNNAME0','unbekannt'), LocalNumber from CallDetail |
Re: ADOQuery SQL und REPLACE
@sniper
wenn ich es so versuche bekomme ich die Fehlermeldung "incorrect syntax near =" git es noch eine andere Variante? |
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 |
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:
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.
LocalUser | LocalNumber
------------------------ Username1 | 123 ------------------------ Username2 | 1unbekannt3 ------------------------ | ... |
Re: ADOQuery SQL und REPLACE
Zitat:
LocalUser | LocalNumber ------------------------ Username1 | 123 ------------------------ Username2 | ------------------------ | mfg Martin |
Re: ADOQuery SQL und REPLACE
Und wie sehen die Daten ohne Replace aus ?
SQL-Code:
Select
LocalUser, LocalNumber from CallDetail |
Re: ADOQuery SQL und REPLACE
Zitat:
so LocalUser | LocalNumber ---------------------------- Username1 | 123 ---------------------------- Username2 | %0UNKNOWNNUMBER0% ---------------------------- |
Re: ADOQuery SQL und REPLACE
Sind da wirklich Prozentzeichen vorn und hinten?
|
Re: ADOQuery SQL und REPLACE
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich folgende SQL-Statement ausführe, bekomme ich das Resultat wie im anhang.
SQL-Code:
Dein Problemm scheint wo anders zu sein, weil SQL-Behfele funktionieren wie gewollt.
USE [Test]
GO /****** Object: Table [dbo].[CallDetail] Script Date: 10/27/2009 14:51:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CallDetail]') AND type in (N'U')) DROP TABLE [dbo].[CallDetail] GO /****** Object: Table [dbo].[CallDetail] Script Date: 10/27/2009 14:51:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[CallDetail]( [LocalUser] [nvarchar](50) NOT NULL, [LocalNumber] [nvarchar](50) NOT NULL, CONSTRAINT [PK_CallDetail] PRIMARY KEY CLUSTERED ( [LocalUser] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] INSERT INTO [CallDetail] ([LocalUser], [LocalNumber]) VALUES ('UserName1', '123') INSERT INTO [CallDetail] ([LocalUser], [LocalNumber]) VALUES ('UserName2', '%0UNKNOWNNUMBER0%') SELECT [LocalUser] ,[LocalNumber] FROM [dbo].[CallDetail] SELECT [LocalUser] , Replace(LocalNumber,'0UNKNOWNNUMBER0','unbekannt') AS LocalNumber FROM [dbo].[CallDetail] Select LocalUser, case when CHARINDEX('0UNKNOWNNUMBER0', LocalNumber) > 0 then Replace(LocalNumber,'0UNKNOWNNUMBER0','unbekannt') else LocalNumber end AS LocalNumber from CallDetail |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz