derroddy
Goto Top

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?

Content-Key: 56116

Url: https://administrator.de/contentid/56116

Printed on: April 19, 2024 at 21:04 o'clock

Member: AndreasHoster
AndreasHoster Apr 11, 2007 at 11:11:17 (UTC)
Goto Top
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.
Member: derroddy
derroddy Apr 11, 2007 at 11:15:54 (UTC)
Goto Top
Danke für die schnelle Antwort. Aus irgendeinem Grund war ich mir ganz sicher, dass man varchars nicht mit = vergleichen darf in SQL. Hab ich mich geirrt. So funktioniert es jedenfalls.