Zum Inhalt springen

Select ... from ... Where [INT-Feld] like %


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem, ich muss in einem Programm einen Select ausführen und Startwerte im Programm sind like '%'. Das klappt wunderbar bei varchar-Felder, aber leider nicht bei INT-Feldern. Gibt es bei einem INT-Feld ein Wildcard-Operator?? Wenn nicht wie macht man das dann??

HILFE.......!? Anbei der Select.

Gruss

Patbone

SELECT TOP 100 PERCENT dbo.werk.w_id, dbo.werk.firma, dbo.werk.kostenstelle, dbo.personal.nachname, dbo.personal.vorname, dbo.personal.p_id,

dbo.hersteller.hersteller, dbo.modell.modell, dbo.hardware.seriennummer_imei, dbo.hardware.telefonnummer, dbo.hardware.mac_adresse,

dbo.kategorie.kategorie

FROM dbo.hardware INNER JOIN

dbo.modell ON dbo.hardware.m_id = dbo.modell.m_id INNER JOIN

dbo.hersteller ON dbo.modell.h_id = dbo.hersteller.h_id INNER JOIN

dbo.kategorie ON dbo.modell.k_id = dbo.kategorie.k_id INNER JOIN

dbo.personal ON dbo.hardware.p_id = dbo.personal.p_id INNER JOIN

dbo.werk ON dbo.personal.w_id = dbo.werk.w_id

WHERE (dbo.hersteller.hersteller = ' % ') AND (dbo.werk.kostenstelle = ' % ') AND (dbo.kategorie.kategorie = ' % ') AND (dbo.personal.nachname = ' % ') AND

(dbo.personal.vorname = ' % ') AND (dbo.modell.modell = ' % ') AND (dbo.hardware.seriennummer_imei = ' % ') AND (dbo.werk.w_id = ' % ') AND (dbo.personal.p_id = ' % ')

Geschrieben

Irgendwie verstehe ich noch nicht so recht, was du mit deiner Abfrage bezwecken möchtest (vielleicht noch zu früh :confused: ), aber bei den anderen Feldern selektierst du ja die Datensätze, wo bestimmte Felder mit einem Leerzeichen beginnen und mit einem Leerzeichen enden.

Wenn du jetzt sowas bei INT machen möchtest, hast du wohl "verloren", denn bei INT-Feldern wird nun mal wirklich nur die Zahl abgespeichert und sonst nichts.

Wenn ich dich jetzt falsch verstanden habe, dann erläutere dein Problem noch mal etwas genauer. Zum Beispiel weshalb du bei INT ein Wildcard benutzen möchtest.

Geschrieben

Servus,

wie Magoo schon sagte, ein Wildcard bei Int macht keinen Sinn. Wie ähnlich soll der Int-Wert denn Deinem Int sein? Du kannst mit Vergleichsoperatoren <, >, <=, >= arbeiten. Die sollten doch ausreichen.

Wenn Du ein suboptimales Datenmodell hast und in den Int-Werten Werte gespeichert hast, die eigentlich keine Ints sind (z.B. Postleitzahlen), dann kannst Du Dir

1. auf die Stirn hauen und es beim nächsten Mal besser machen.

2. Mit einer convert-Funktion Deines DBMS arbeiten und Dein "Int" in ein char oder varchar umwandeln und bei diesem dann mit Wildcard arbeiten.

Peter

Geschrieben

Um welches DBMS handelt es sich?

Aber spontan fällt mir ein einfach zu wandeln und dann like zu benutzen...

(vielleicht nicht die schnellste Abfrage dann :) aber je nach DBMS gibts evt. noch andere Lösungen...)

to_char(spalte) like ('12%')

Geschrieben

Jetzt sehe ich erst dein "dbo." Dann ist es wohl ein MSSQL-Server!?

Gibt es da nicht sowas wie Fragezeichen? In Access kann man doch z.B. Fragezeichen benutzen um in Zahlen eine Stelle als Wildcard zu nehmen, geht das dann nicht auch unter SQL?

Das mit dem to_char wird da dann wohl nicht funktionieren(?) oder gibt es diesen Befehl auch unter MSSQL?

Geschrieben

der Select ist aus dem C++-Programm, natürlich sind keine Leerzeichen bei '%'. War ne lange Nacht.

Ich setze auf meinen Variablen (sql-WerkID)den Startwert auf '%' , somit suche ich, auch wenn in die EditFelder des Programmes nichts eingetragen wurde, nach allen Werten und nicht nach <LEER>.

CString Wildcard="\%";

CString sql_werkID=\%";

CString sql_hersteller="\%";

....WHERE (dbo.werk.w_id = ' % ')

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...