Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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 = ' % ')

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.

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

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%')

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?

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 = ' % ')

achja, es ist MSSQL 2000

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.