2010-12-09 3 views
0

ich eine Varchar-Spalte in einer Datenbank und eine Anforderung hat in so einen Benutzer kommt eine Reihe von/zum Beispiel eingeben/ABC001 zu ABC100SQL - Berechnung, wenn ein alphanumerischer Wert in einem alphanumerischen Bereich existiert

Ich habe Die folgende Abfrage hat jedoch den Eindruck, dass sie möglicherweise nicht streng genug ist, um herauszufinden, ob Werte in diesem Bereich vorhanden sind.

SELECT count(*) FROM MyTable where MyColumn between 'ABC001' and 'ABC005' 

Ich habe das Gefühl, einen Auftrag von oder verwendet wird, gibt es einen besseren Weg, um die Existenz von Werten innerhalb eines alphanumerischen Bereichs

Antwort

1

Kein orderby erforderlich ist zu berechnen. Das sollte perfekt sein.

0

Wenn Sie diesen Vorgang verstärken möchten, können Sie einen Index dafür erstellen.

Die Reihenfolge der Operationen wird am Ende der Abfrageausführung festgelegt, sodass die Daten auf die gleiche Weise abgerufen werden.

+0

Erstellen Sie einen Index auf was? MyColumn hat einen Index, wenn Sie das meinen – Jon

+0

Ich meine auf "MyColumn". Da MyColumn bereits über einen Index verfügt, ist diese Abfrage gut. –

+0

Einige Indizes unterstützen die '<=' and '> =' Operatoren möglicherweise nicht. B-Baum tut es. – TomaszK

0

OP sagte:

oder gibt es eine bessere Art und Weise die Existenz von Werten innerhalb eines alphanumerischen Bereich

Der beste Weg wäre zu berechnen:

SELECT count(*) FROM MyTable where MyColumn>='ABC001' and MyColumn<='ABC005' 

Ich finde die meisten Leute können sich nicht erinnern, ob BETWEEN die "Endpunkte" einschließt oder ausschließt. Indem Sie immer nur >= und/oder > und/oder <= und/oder < verwenden, haben Sie mehr Klarheit und Flexibilität.

ORDER BY würde den resultierenden Satz von Zeilen angewandt, die die WHERE Bedingung erfüllen, Jede und hat nichts mit der WHERE Filterung zu tun. Sie können es verwenden, wenn das Endergebnis in einer bestimmten Reihenfolge festgelegt werden soll. Es hat jedoch keine Auswirkung darauf, welche Zeilen in den Ergebnissen enthalten sind.

Verwandte Themen