Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Datenbanken

GELÖST

MSSQL Abfragen, wo Spalteninhalt in Vergleichsparameter enthalten sein soll...

Mitglied: Mondragor

Mondragor (Level 1) - Jetzt verbinden

25.02.2013 um 12:57 Uhr, 1957 Aufrufe, 7 Kommentare

Hallo,

ich habe ein Problem mit einer MSSQL-Abfrage, die ich machen will.
Es gibt beispielsweise 3 mögliche Vergleichsparameter, wie
- "weiße Schokolade"
- "braune Schokolade"
- "bittere Schokoladen"

und in einer Tabelle, die ich abfrage, steht nun z.B. in `Tabelle1$`.SPALTE1 in irgendeiner Zeile
" Schokolade".
Dieser Eintrag soll für alle 3 Parameter gefunden werden.
Prinzipiell bedeutet das, dass also der Spalteneintrag in dem Suchparameter quasi als Substring
enthalten sein muss.
Doch wie kann ich das formulieren?
Ich habe verschiedenes in MSQRY32 versucht, wie z.B.:

SELECT * FROM `c:\tabelle`.`Tabelle1$` Tabelle1
WHERE '%`Tabelle1`.SPALTE1%' LIKE "braune Schokolade"

oder

...
WHERE '%'+Tabelle1`.SPALTE1+'%' LIKE "braune Schokolade"

Leider ohne erfolg.
Frage: Wie kann man erfolgreich einen String mit Regexes zusammenbauen, am Beispiel dieser Where-Klausel
oder gibt es gar eine Funktion, die prüfen kann, ob ein Spalteneintrag als "Substring" in einem String enthalten ist?

Vielen Dank im Voraus für Eure Antworten.

Grüße,
Mondragor
Mitglied: LianenSchwinger
25.02.2013 um 13:12 Uhr
Hallo Mondragor,

das müsste mit folgendem RegEx klappen:

01.
(braune|weiße|bittere)? Schokolade(n)?
Getestet unter http://regexpal.com/ mit folgendem Suchtext.

01.
Das ist braune Schokolade 
02.
Das ist weiße Schokolade 
03.
Das sind bittere Schokoladen 
04.
Das ist nur Schokolade 
05.
Das ist gelbe Schokolade
G Jörg
Bitte warten ..
Mitglied: Mondragor
25.02.2013 um 13:22 Uhr
Hallo Jörg,

erstens weiß ich nicht, in welcher Weise ich das in die Abfrage einbauen soll?
Außerdem ist von Anfang an nicht unbedingt klar, welche Worte / Zeichenfolgen
vor / hinter "Schokolade" folgen. Die Parameter sind Variablen. braune, weiße und bittere waren nur
Beispiele, wie das aussehen könnte.
Gibts da nicht sowas wie beliebig lange / beliebige Zeichenketten?
Bitte warten ..
Mitglied: LianenSchwinger
25.02.2013 um 13:36 Uhr
Hallo,

zu 1) wie baue ich das ein:

01.
SELECT * 
02.
FROM 'c:\tabelle'.'Tabelle1$' Tabelle1  
03.
WHERE Tabelle1.SPALTE1 REGEXP '(braune|weiße|bittere)? Schokolade(n)?'
zu 2) was steht denn z.B. in Deinen Parameter(n)?

G Jörg
Bitte warten ..
Mitglied: Mondragor
25.02.2013 um 14:30 Uhr
Hallo nochmal Jörg,

zu 2.)
Es stehen verschiedene Sachen drin und es steht momentan nicht fest, was in Zukunft drin stehn wird.
Das kann von Tag zu Tag mehr werden und genau das ist ja das Problem. Der Spalteninhalt soll fest sein,
die Parameter aber nicht. Der Spalteninhalt " Schokolade" (hier nur ein Beispiel) soll immer gefunden werden,
wenn beliebige Zeichen quasi "% Schokoladen%" im Parameter steht. Wenn es also möglich.
Oft hat man ja den Fall, dass man sucht:

... WHERE `Tabelle1`.SPALTE1 LIKE '%Parameter%'

Hier ist es aber genau umgekehrt. Quasi
WHERE '%`Tabelle1`.Spalte1%' LIKE 'Parameter'
.
Das will ich nur eben auch funktionstüchtig haben, bei CONCAT oder '%'+ ... zeigt er aber kein ergebnis bzw. kennt CONCAT nicht und auch REGEXP erkennt er nicht. Das kann aber auch an msqry32 liegen, kann ich nicht mit Sicherheit sagen.
Bitte warten ..
Mitglied: LianenSchwinger
25.02.2013 um 14:40 Uhr
Hallo,

Ups, erstmal Entschuldigung hatte das MSSQL überlesen und gedacht, es geht um MySQL.

In MSSQL gibt es glaube ich gar keine regulären Ausdrücke.

G Jörg
Bitte warten ..
Mitglied: MadMax
26.02.2013 um 12:41 Uhr
Hallo Mondragor,

Zitat von Mondragor:
Hier ist es aber genau umgekehrt. Quasi
WHERE '%`Tabelle1`.Spalte1%' LIKE 'Parameter'

Wenn es genau umgekehrt ist, dann schreib es doch auch genau umgekehrt::
01.
where 'Parameter' like '%' + Tabelle1.Spalte1 + '%'
Gruß, Mad Max
Bitte warten ..
Mitglied: Mondragor
11.03.2013 um 11:08 Uhr
Wir haben das Problem nun anders gelöst. Danke trotzdem für Eure Antworten.
Mir war das zu unsicher, auf welche syntaktischen und semantischen Grundsätze die Software, die in sich nicht MS ist,
zurückgreift. Daher sind wir auf nummer sicher gegangen und haben die Gleichheit von Parameter und Tabellenwert in die
Abfrage geschrieben.
MSQRY32 hat nicht alles unterstützt, was wir gebraucht hätten. Ob die Drittanbietersoftware alle SQL-Befehle kennt, weiß
ich eben auch nicht. Drum lieber die Tabelle angleichen als die Gefahr einzugehen, dass es keine eindeutigen Ergebnisse gibt.
Bitte warten ..
Ähnliche Inhalte
Microsoft
MSSQL Profiler: Abfragen ohne Parametrisierung finden
Frage von SeaStormMicrosoft

Guten Tag zusammen, kennt jemand eine Möglichkeit per SQL Profiler (oder was auch immer) Abfragen vom SQL Server zu ...

Datenbanken
Hibernate sql abfrage in mssql anzeigen
Frage von Thor01Datenbanken1 Kommentar

Hallo, gibt es die Möglichkeit das ich mir alle SQL Queries die auf eine MSSQL abgesetzt werden anzeigen (mitloggen) ...

Datenbanken
MSSQL quenquery
gelöst Frage von petereDatenbanken6 Kommentare

Hallo, ich stoße leider an die Grenzen meiner MSSQL-Kenntnisse. Ich muss diesen, eigentlich einfachen, UPDATE-Ausdruck via zwei Verbindungsserver-Verbindungen realisieren. ...

Datenbanken
MSSQL-Zugriffsproblem
Frage von petereDatenbanken3 Kommentare

Hallo, ich habe eine 32bit VB6-Anwendung, mit der ich auf MSSQL 2012 Server Instanzen zugreifen möchte, die einen Spielserver ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 18 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...