Diese Frage ist ähnlich wie meine letzte Frage . Nur dass ich diesmal Buchstaben statt 6-stelliger Ganzzahlen verwende. Ich möchte die nicht aufeinanderfolgenden "Buchstaben" finden.
Nehmen wir an, ich habe die folgenden Daten:
id | Date | Letter
-----------------------------
01 | 5/1/2009 | X
02 | 5/1/2009 | Y
03 | 5/1/2009 | Z
04 | 5/1/2009 | A
05 | 5/1/2009 | B
06 | 5/1/2009 | D
Ich würde gerne eine Abfrage erstellen, die mir sagt, dass zwischen Zeile 05 und 06 eine Zeile mit "C" stehen sollte.
In meiner letzten Frage (unter Verwendung von INTs) wurde mir etwas Ähnliches wie die folgende Lösung angeboten, und sie hat hervorragend funktioniert.
SELECT * from TABLE1 t1
LEFT OUTER JOIN TABLE2 t2 ON t2.INTCol - 1 = t2.INTCol AND t1.date = t2.date
WHERE t2.id IS NULL
Nun, bei Buchstaben kann ich (soweit ich weiß) nicht (G - 1) sagen. Gibt es einen anderen Weg, wie ich das machen kann?
Die von mir verwendete Datenbank ist SQL Server 2005. Ich glaube, es gibt eine einfache Lösung in PL/SQL, die TRANSLATE verwendet, aber ich glaube nicht, dass ich etwas Ähnliches mit TSQL machen kann.