Этот вопрос похож на мой последний вопрос . За исключением этого времени я использую буквы, а не 6-значные целые числа. Я хочу найти непоследовательные "буквы".
Допустим, у меня есть следующие данные:
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
Я бы хотел иметь возможность задать запрос, который сказал бы, что между строкой 05 и 06 должна быть строка с буквой "C".
В моем последнем вопросе (с использованием INT) мне предложили что-то похожее на следующее решение, и оно отлично работало.
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
Ну, с буквами (насколько я знаю) я не могу сказать (G - 1). Итак, есть ли другой способ сделать это?
База данных, которую я использую, - это SQL Server 2005. Я считаю, что в PL / SQL есть простое решение, использующее TRANSLATE, но я не думаю, что могу сделать что-либо подобное, используя TSQL.