MSSQL - Gibt es etwas exakteres als LIKE
Habe Probleme bei Vergleichen mit %
Hallo,
ich habe folgendes Problem: Ich habe in einer Tabelle die Einheiten gespeichert, die im Programm verwendet werden sollen mit ID und einem String. Nun brauche ich die IDs der Einheit, wenn ich den String habe.
z.B.:
EINHEITEN
1 m
2 cm
Ich möchte etwas mit Metern irgendwo einfügen
INSERT INTO X Einzufügen.Name AS Name, EINHEITEN.ID WHERE Einzufügen.Einheit LIKE EINHEITEN.Name
Das Funktioniert prinzipiell problemlos, aber ich habe ein Problem mit der Einheit '%'. Da würde das obige Query dann
INSERT INTO X Einzufügen.Name AS Name, EINHEITEN.ID WHERE Einzufügen.Einheit LIKE '%'
Natürlich findet er da dann alle Einheiten weil alle Namen LIKE '%' erfüllen. Hat einer eine Idee, wie ich das umgehen kann? Gibt es z.B. einen Befehl den ich anstelle von LIKE zum Vergleich von zwei varchars verwenden kann?
Hallo,
ich habe folgendes Problem: Ich habe in einer Tabelle die Einheiten gespeichert, die im Programm verwendet werden sollen mit ID und einem String. Nun brauche ich die IDs der Einheit, wenn ich den String habe.
z.B.:
EINHEITEN
1 m
2 cm
Ich möchte etwas mit Metern irgendwo einfügen
INSERT INTO X Einzufügen.Name AS Name, EINHEITEN.ID WHERE Einzufügen.Einheit LIKE EINHEITEN.Name
Das Funktioniert prinzipiell problemlos, aber ich habe ein Problem mit der Einheit '%'. Da würde das obige Query dann
INSERT INTO X Einzufügen.Name AS Name, EINHEITEN.ID WHERE Einzufügen.Einheit LIKE '%'
Natürlich findet er da dann alle Einheiten weil alle Namen LIKE '%' erfüllen. Hat einer eine Idee, wie ich das umgehen kann? Gibt es z.B. einen Befehl den ich anstelle von LIKE zum Vergleich von zwei varchars verwenden kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 56116
Url: https://administrator.de/contentid/56116
Ausgedruckt am: 26.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Selbstverständlich gibt es was exakteres: =
INSERT INTO X Einzufügen.Name AS Name, EINHEITEN.ID WHERE Einzufügen.Einheit = EINHEITEN.Name
Wenn man es mit Konstanten machen will:
Einzufügen.Einheit = 'm' (Einfache Anführungszeichen)
Und, auch wenn es im Normalfall geht, ich würde auf Umlaute in Tabellen und Spaltennamen verzichten, kann manchmal doch zu Problemen führen.
INSERT INTO X Einzufügen.Name AS Name, EINHEITEN.ID WHERE Einzufügen.Einheit = EINHEITEN.Name
Wenn man es mit Konstanten machen will:
Einzufügen.Einheit = 'm' (Einfache Anführungszeichen)
Und, auch wenn es im Normalfall geht, ich würde auf Umlaute in Tabellen und Spaltennamen verzichten, kann manchmal doch zu Problemen führen.