2010-03-17 4 views

답변

5
SELECT * 
FROM your_table AS a 
    LEFT JOIN your_table AS b 
     ON a.key_column = b.key_column - 1 
WHERE b.key_column IS NULL 
2

SQL 쿼리에 where 절을 사용하지 않는 이유는 무엇입니까?

select * 
from your_table 
where id in (1, 6) 
+0

아니, 난'1,6'이 없습니다 – mysql

1

귀하가 특별히 선택한 경우가 아니라면 선택한 DB에서 행은 일반적으로 "연속적"이지 않습니다. 주문을 지정하지 않을 때 종종 올바른 순서로 나옵니다.

2

어때?

SELECT 
    * 
FROM 
    [MyTable] 
WHERE 
    [MyId] NOT IN 
(
    SELECT 
     [MyId] - 1 
    FROM 
     [MyTable] 
) 
0

로빈 날에 의해 제안 된 솔루션을위한 약간의 개선이

SELECT 
    [MyId] + 1 
FROM 
    [MyTable] 
WHERE 
    [MyId] NOT IN 
(
    SELECT 
     [MyId] - 1 
    FROM 
     [MyTable] 
) 
ORDER BY [MyId] + 1 
관련 문제