Ich habe eine kurze Textspalte in Access namens ZIP. Es muss ein kurzer Text sein.Wie kann ich die ersten 4 Zeichen einer Spalte in SQL nehmen und vergleichen?
Ich versuche die ersten 4 Zeichen jedes ZIP auszuwählen und zu sehen, ob es unter einer bestimmten Nummer ist.
MY SQL ist:
SELECT *
FROM [WORK]
WHERE LEFT(ZIP, 4) < 300;
Ich erhalte eine Fehlermeldung, die besagt, "Datentypenkonflikt in Kriterium-Ausdruck." Ich gehe davon aus, dass das ZIP-Feld ein Kurztext und keine Nummer ist. Wie würde ich darüber gehen?
versuchen, die Datentypen Gießen (ohne uns Ihre Datenstruktur thas die besten quess wissen) – happymacarts
@happymacarts ZIP ist eine Zeichenfolge, da es sich um eine 10-stellige codierte Postleitzahl mit einem Bindestrich in der Mitte handelt. Ich brauche nur die ersten 3 von ZIP und das zu einem INT zu werfen. – rohanharrison
Nimmt man nur US-Postleitzahlen an, dann spielt der Vergleich als numerisch gegen varchar keine Rolle; vorausgesetzt, jede Postleitzahl im System ist gut gebildet (Bedeutung 5 Ziffern oder 5 Ziffern + '-' + 4 Ziffern.) Die Logik der Bewertung einer Postleitzahl mit weniger als 300 ist interessant, aber ich denke, wenn Sie nach New England und dem Nahen Osten der USA Coast es funktioniert. (kein Florida Georgia Alabama usw.). "Mathe" für eine Integer-Postleitzahl zu machen, erscheint mir einfach falsch. Es wäre vielleicht besser, die Zip-Datei in die erste Ziffer 2 und die letzte 2 zu zerlegen .... Schließlich, warum 4 Positionen, wenn Sie nur mit 3 vergleichen? – xQbert