MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 07.04.2008, 17:43   #1
samke
Konfus T-SQL : MSSQL 2000 - Replace - mehrere aufeinmal?

Hallo,

es geht um einen SQL 2000 - und ein DB Abfrage.

Ich möchte eine Tabelle Abfragen und dabei aus einer Spalte 2 Werte entfernen, also alle PUNKTE und alle KOMMAS.

Wie ich einen Wert entferne ist mir klar, nur wie bekomme ich aufeinmal gleich mehrere Sachen entfernt?

REPLACE(FELD, ',', '') AS TEST



Danke für die Hilfe!
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2008, 17:44   #2
Arne Dieckmann
MOF Guru
MOF Guru
Standard

Mehrfach aufrufen geht auch:
Code:

Replace(REPLACE(FELD, ',', ''),'.','') AS TEST

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2008, 17:49   #3
samke
Standard

WOW schneller habe ich in einem Forum noch nie eine richtge Antwort bekommen - danke!!!

Funktioniert zwar, nur gibt es evtl. noch eine übersichtlicher Varinate? Wenn man mehr als zwei Werte entfernen möchte, wirds sonst schnell unübersichtlich.


Gruß
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2008, 17:55   #4
Arne Dieckmann
MOF Guru
MOF Guru
Standard

Hm, du könntest noch eine benutzerdefinierte Funktion verwenden. Deren Code wird dann höchstwahrscheinlich fast genauso unübersichtlich (obwohl - da könnte man vielleicht auch etwas Nettes basteln).

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2008, 18:00   #5
samke
Standard

ok, dann bau ich mir das in der Form zusammen.

Gibt es eine Möglichkeit den gesamten Inhalt in Kleinbuchstaben zu ändern?

Ich möchte halt zwei Tabellen vergleichen, damit es möglichst viele Treffer gibt, will ich halt alle Sonderzeichen und andere Schreibweisen so weit wie möglich eingerenzen.
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.04.2008, 18:07   #6
Arne Dieckmann
MOF Guru
MOF Guru
Standard

Mittels LOWER (Klick mich) kannst du den gesamten Ausdruck in Kleinbuchstaben ändern:
Code:

Lower(Replace(REPLACE(FELD, ',', ''),'.','')) AS TEST

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.04.2008, 09:15   #7
letts
MOF Profi
MOF Profi
Standard

Hallo,

hier eine UDF die dass Ersetzen vornimmt:
Code:

CREATE FUNCTION dbo.udf_replace (@str VARCHAR(50))

RETURNS VARCHAR(50) AS

BEGIN
	SET @str = REPLACE (@str,'-','')
	SET @str = REPLACE (@str,'/','')
	SET @str = REPLACE (@str,' ','')
	SET @str = REPLACE (@str,'.','')
	SET @str = REPLACE (@str,',','')
	SET @str = REPLACE (@str,'  ','')
	SET @str = REPLACE (@str,'   ','')
	SET @str = REPLACE (@str,'+','')
	SET @str = REPLACE (@str,'*','')
	SET @str = REPLACE (@str,'^','')

  RETURN @str 	-- oder auch: 
		-- Lower(@str)

END
Die UDF kannst du mit beliebigen Ausdrücken erweitern.
Aufruf dann mittels:
Code:

Select dbo.udf_replace(Feld) AS Test

__________________

Schöne Grüsse
Christian
WinXP + Access 2002 | Win2k3 SE | MS SQL Server 2k( SP4)
Kalenderwoche: Aktuelle KW nach DIN Norm
Dumme Gedanken hat jeder, aber der Weise verschweigt sie.

Profile for temptProvidence
letts ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.04.2008, 11:31   #8
samke
Standard

Hi,

das hört sich ja super an!

Die Funktion, setze ich die mit in die Abfrage (Query Analyzer)?

Ich bekomm so halt die Fehlermeldung:
Server: Nachr.-Nr. 156, Schweregrad 15, Status 1, Prozedur udf_replace


Was mache ich falsch?
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.04.2008, 11:37   #9
letts
MOF Profi
MOF Profi
Standard

Hallo,

mit dem zuerst geposteten Code erstellst du dauerhaft eine UDF in der DB. Das machst du einmal.
Also in QA gehen. DB auswählen, in der die UDF erstellt werden soll. Code ausführen, fertig.

Zur Verwendung der UDF dann wie geschrieben, so hier:
Code:

Select dbo.udf_replace(Feld) AS Test

__________________

Schöne Grüsse
Christian
WinXP + Access 2002 | Win2k3 SE | MS SQL Server 2k( SP4)
Kalenderwoche: Aktuelle KW nach DIN Norm
Dumme Gedanken hat jeder, aber der Weise verschweigt sie.

Profile for temptProvidence
letts ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.04.2008, 17:40   #10
samke
Normal

wie genial :-)...

vielen Dank - für beide Lösungen - genau das was ich gesucht hab!


Gruß
Sven
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.01.2009, 20:33   #11
webhugo
Neuer Benutzer
Neuer Benutzer
Tipp

Zitat: von letts Beitrag anzeigen

Hallo,

hier eine UDF die dass Ersetzen vornimmt:

Code:

CREATE FUNCTION dbo.udf_replace (@str VARCHAR(50))

RETURNS VARCHAR(50) AS

BEGIN
	SET @str = REPLACE (@str,'-','')
	SET @str = REPLACE (@str,'/','')
	SET @str = REPLACE (@str,' ','')
	SET @str = REPLACE (@str,'.','')
	SET @str = REPLACE (@str,',','')
	SET @str = REPLACE (@str,'  ','')
	SET @str = REPLACE (@str,'   ','')
	SET @str = REPLACE (@str,'+','')
	SET @str = REPLACE (@str,'*','')
	SET @str = REPLACE (@str,'^','')

  RETURN @str 	-- oder auch: 
		-- Lower(@str)

END
Die UDF kannst du mit beliebigen Ausdrücken erweitern.
Aufruf dann mittels:
Code:

Select dbo.udf_replace(Feld) AS Test


Ich bin nicht so fitt in Access - was ist den eine UDF wo muss ich den Code den eintargen?
Gibt es da irgendwo eine MDB-Beispieldatei, dass man sich das mal anschauen kann? Das würde mir als absoluter Anfänger das ganze sehr erleichtern.

Viele Dank und viele Grüße

webhugo
webhugo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.01.2009, 21:21   #12
Arne Dieckmann
MOF Guru
MOF Guru
Standard

Setzt du wirklich einen SQL-Server ein? Wenn es eigentlich um dein altes Thema geht, dann bleibe lieber im Thread Acc2003 - Access Suchen und Ersetzen Datenbank … und frage dort weiter.

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 24.01.2009, 09:26   #13
webhugo
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von Arne Dieckmann Beitrag anzeigen

Setzt du wirklich einen SQL-Server ein? Wenn es eigentlich um dein altes Thema geht, dann bleibe lieber im Thread Acc2003 - Access Suchen und Ersetzen Datenbank … und frage dort weiter.

Sorry nein Access 2003, da habe ich mich wohl vertan ich habe im Forum nur nach der Replace Funktion gesucht und bin dann auf diesen Beitrag gestoßen.

Viele Grüße

webhugo
webhugo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.