Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

MSSQL Server - Suche nach Bezeichnungen mit Unterstrich im Namen

Tipp Entwicklung Datenbanken

Mitglied: Netzheimer

Netzheimer (Level 2) - Jetzt verbinden

21.07.2009, aktualisiert 10:28 Uhr, 17220 Aufrufe, 5 Kommentare

Auf Grund der Herstellervorgaben einer eingesetzten Software haben wir eine Schreibweise mit Unterstrich wählen müssen. Dies ist bei der Suche nicht immer hilfreich. Dieses kleine Workaround hat mich vermutlich wieder 67 Haare gekostet aber es funktioniert.

Da der Unterstrich in MSSQL eigentlich ein Platzhalter für ein beliebiges Zeichen ist, ist es nur über einen kleinen Umweg möglich dies als Zeichen abzufragen:

declare @searchVar nvarchar(255)
set @searchVar = char(0x5F)+'beliebiger Text'+char(0x5F) -- char(0x5F) = Unterstrich

select * from sys.objects
where CHARINDEX(@searchVar, [name]) > 0;

Die Funktion CHARINDEX gibt die Position des Auftretens des gesuchten Patterns, in diesem Fall _beliebigerText_, zurück.
Mitglied: -ricardo-
21.07.2009 um 13:49 Uhr
Hi
Nimm doch

LIKE "%_%"
Bitte warten ..
Mitglied: Netzheimer
22.07.2009 um 09:32 Uhr
Hallo.

dein Vorschlag heißt ausgesprochen:
LIKE 'beliebigeAnzahlZeichen-Genau1beliebigesZeichen-beliebigeAnzahlZeichen'

Das kann man kürzen auf LIKE '%' und damit habe ich alles, zwar auch die mit Unterstrich, jedoch auch alle anderen.

Der Unterstrich wird in deiner Version behandelt wie es vorgesehen ist, nämlich als Platzhalter für 1 Zeichen. Nach dem Unterstrich selbst kannst du so nicht suchen.

Gruß
Netzheimer
Bitte warten ..
Mitglied: -ricardo-
22.07.2009 um 09:46 Uhr
Stimmt ist ja als Platzhalter :D

Dann ein \ davor dann ....LIKE '%\_%' ....dann müsste das nicht als Wildcard gelten ... habe es aber nicht getestet
Bitte warten ..
Mitglied: Netzheimer
22.07.2009 um 13:29 Uhr
MSSQL hat keine Escape-Sequenzen.

Wir bewegen uns im Bereich Visual-Studio und MSSQL - nicht in anderen Programmiersprachen.

Netzheimer
Bitte warten ..
Mitglied: Biber
23.07.2009 um 13:47 Uhr
Moin Netzheimer und -ricardo-,

wenn ich auch mal kurz kommentieren kann:

@-ricardo
Nimm doch
LIKE "%_%"
Und das klappt sogar bei MSSQL's ungeliebtem Cousin M$-Access.

Dort führt ein ...WHERE feld LIKE "*_*" in der Tat zum "richtigen" Ergebnis.
Aber was versteht Access auch schon von SQL?

@Netzheimer
MSSQL hat keine Escape-Sequenzen.
So schlecht rede nicht ich mal ich über die Redmonder...

Bei MSSQL werden Wildcards des LIKE-Operators maskiert durch "[" und "]"
Dann werden Prozentzeichen und Unterstriche als Literale behandelt.

Also teste einfach ein
01.
select * from sys.objects 
02.
where name like '%[_]%';
Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Windows Server
Upgrade von MSSQL Server 2008 R2 auf MSSQL Server 2012 schlägt fehl (4)

Frage von Argoadmin zum Thema Windows Server ...

Windows Server
MSSQL Arbeitsspeicher Auslastung (6)

Frage von Jabberwocky86 zum Thema Windows Server ...

Windows Server
MSSQL Hotfix in Spiegelumgebung

Frage von petere zum Thema Windows Server ...

Batch & Shell
gelöst Nach bestimmten Ordner namen suchen und in einem anderem Pfad kopieren (8)

Frage von erdgnrft zum Thema Batch & Shell ...

Neue Wissensbeiträge
Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(4)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Windows 10

Microsoft veröffentlicht das "Fall Creators Update

(10)

Information von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...