Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

MSSQL 2008 LIKE ..0-9.. liefert auch Ergebnisse mit Buchstaben

Frage Entwicklung Datenbanken

Mitglied: diavolo

diavolo (Level 1) - Jetzt verbinden

14.11.2014, aktualisiert 16:27 Uhr, 1002 Aufrufe, 7 Kommentare, 1 Danke

Hallo an alle Datenbankgurus

wir haben eine Artikel-Tabelle mit dem Feld artikel nvarchar(22).

Ich möchte mit

select artikel from artikel
where artikel like N'24%[0123456789]'

nur die Datensätze selektieren,
die nach der "24" nur noch numerische Zeichen stehen haben.
MSSQL 2008 liefert mir aber auch z.B.:

244922/6
245285ST10
245285ST8
245286ST6
245286ST7
24-5422804
246079 Blatt 10
246605702_1
246913700 bis Mai 2011
246913816 bis Mai 2011
246977-001
24-7647-001

selbst mit zusätzlich ... and artikel like N'24%[^a-z]%[^A-Z]%[0-9]%[^a-z]%[^A-Z]'
bekomme ich das selbe Ergebnis.

mit ..and ISNUMERIC(artikel)=1 fallen obige Ergebnisse raus, aber das sollte doch nicht die Lösung sein.

Ich finde auch keine passende SET-Anweisung.
Was mache ich da falsch?

Grüße
Mitglied: Doskias
LÖSUNG 14.11.2014, aktualisiert um 16:27 Uhr
Warum sollte das nicht die Lösung sein?

mit like sagst du ihm ja, dass es änlcih sein soll. SQL-Anweisungen schreiben ist nicht meine Stärke, aber ichv erstehe sie ganz gut und mich überrascht das Ergebnis nicht. Übersetzen wir das mal in Umgangssprache, sagst du ihm:

"Zeige mir die Datensätze, die mit 24 beginnen und dann Zahlen und sowas kommen". Dadurch bekommst du die änlichen Werte auch zurück, die du nicht willst. Wie gesagt bin ich da nicht so fit, aber hast du schon einmal andere Vergleichsoperatoren ausprobiert? Zum Beispiel anstelle des Like ein IS eingesetzt?
Bitte warten ..
Mitglied: AndreasHoster
LÖSUNG 14.11.2014, aktualisiert um 16:27 Uhr
RTFM.

Laut MS Doku (http://msdn.microsoft.com/de-de/library/ms179859.aspx):

% = Eine Zeichenfolge aus null oder mehr Zeichen
[ ] = Beliebiges einzelnes Zeichen im angegebenen Bereich ([a-f]) oder in der angegebenen Menge ([abcdef]).

Wo steht da, daß %[] als beliebige Anzahl Zeichen der angegebenen Menge gesucht wird?
% steht für eine beliebige Zeichenfolge, also auch mit Buchstaben.

Also beliebig viele Zahlen wird nur mit isnumeric gehen.
Bitte warten ..
Mitglied: diavolo
14.11.2014 um 16:21 Uhr
Danke, hast mir die Augen geöffnet
Glaub mir, ich hab TFM mehrfach gelesen, aber eben immer falsch interpretiert.

Außerdem würde ich schwören, dass ich bei msdn ein Beispiel gesehen habe um rein numerische Postleitzahlen
mit ".. like '%[1-9] " zu selektieren, finde ich aber nicht mehr.

isnumeric liefert halt auch bei "24123.123" TRUE,
die Sätze bekomme ich natürlich auch weg, ist halt nicht so elegant wie mein falscher Ansatz.
Bitte warten ..
Mitglied: diavolo
14.11.2014, aktualisiert 17.11.2014
Danke, habe fälschlicherweise angenommen, dass %[1-9] bedeutet beliebig viele Zeichen aus [1-9].
Wie vorhin geschrieben ist isnummeric auch nicht die alleinige Lösung.
Bitte warten ..
Mitglied: MadMax
LÖSUNG 14.11.2014, aktualisiert 17.11.2014
Hallo diavolo,

das Thema ist zwar schon abgeschlossen, aber hier noch eine Lösung ohne isnumeric, die auch gleich die Kommazahlen rausholt:
01.
select	* 
02.
from	artikel 
03.
where	artikel like '24%[1-9]%' and	-- alles was mit '24' anfängt und hintendran Ziffern hat 
04.
	artikel not like '%[^1-9]%'	-- alles ausschliessen, was andere Zeichen als Ziffern hat
Gruß, Mad Max
Bitte warten ..
Mitglied: diavolo
17.11.2014 um 09:46 Uhr
Danke Mad Max,
das ist eindeutig die sauberste Lösung (allerdings mit ..[0-9]...)


Gruß diavolo
Bitte warten ..
Mitglied: MadMax
17.11.2014 um 13:19 Uhr
Natürlich [0-9], war ne lange Woche

Gruß, Mad Max
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Suche liefert keine Ergebnisse - SharePoint Foundation 13 (1)

Frage von erdmelone zum Thema Windows Server ...

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
gelöst MSSQL 2016 Express auf Windows Server 2008 R2 Standard? (2)

Frage von TiCar zum Thema Windows Server ...

Exchange Server
Ersten Buchstaben einer Mail werden abgeschnitten (2)

Frage von Philipp.S zum Thema Exchange Server ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (22)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...