Abfrage - ersten 5 Buchstaben
-
Hi,
Ich habe eine Datenbank mit Computernamen, bei denen die ersten 5 Buchstaben jeweils eine Gruppe beschreiben, z.B. 5 PCs heissen hallo+Nummer die den PC identifiziert, weitere 5 heissen suppi+Nummer die den PC identifiziert.
Ich würde jetzt gerne eine Abfrage haben, die mir lediglich die Indizes davor ausgibt, also hätt ich in diesem Fall hallo und suppi als Ausgabe. Doppelte sollen gestrichen werden.
Weiss jemand wie das geht?
Gruß Ingode
-
Hatte vergessen zu sagen, dass ich eine SQL Abfrage machen möchte!
-
falls du gruppe und nummer getrennt speicherst, dann kannst du einfach
SELECT DISTINCT gruppe FROM meinetabelle. sonst könntest du mit LIKE arbeiten.
-
nee sind zusammen gespeichert! Mit Like könnte ich nur dann arbeiten wenn ich wüsste wie die Indizes sind, da es sich aber um eine große Datenbank handelt kenne ich nicht alle.
-
Verwende doch SUBSTRING:
SUBSTRING(Spaltenreferenz FROM Startposition [FOR Länge])SELECT DISTINCT SUBSTRING(Computername FROM 1 FOR 5]) AS Computergruppe
-
hm klingt problematisch. du könntest alle nicht numerischen zeichen wegtrennen, dann hättest du deine gruppe. ist aber alles recht langsam. vielleicht bekommt man was mit order by und group by hin?
-
Also wenn ich das eingebe sagt er mir incorrect Syntax, die eckigen Klammern bei [1 for 5] hab ich auch weggelassen oder nur eine gesetzt, daran liegt es nicht.
SELECT DISTINCT SUBSTRING(Computername FROM [1 FOR 5]) AS Computergruppe FROM Computer
-
Habe die Lösung gefunden:
SELECT DISTINCT SUBSTRING(Computername, 1, 5) AS Computergruppe FROM dbo.InvComputer
Substring war ne gute Idee, Danke!