识别具有不按顺序的数字的行

时间:2017-02-12 13:05:17

标签: php sql

我有一组不按顺序排列的数据。

No. Word
5   Hi
1   Hiii
2   Hiiiii
3   Hiiiiii
4   Hiiiiiii

如何使用sql语句打印出第一行,该语句指示此数据不应按顺序排列。

我想要的输出是:

No.5 is not in sequential order. 

2 个答案:

答案 0 :(得分:0)

希望我能正确理解你的问题。

尝试在PostgreSql中创建相同的问题。

请使用以下sql。

Sqlfiddle链接 - http://sqlfiddle.com/#!15/63802/14/0

select col1 , col2
from
(
select col1, case when col1 = m  then 'Y'
else
case when 
col1-l=1 then 'Y' else 'N' end
end st, col2
from
(
select col1 , lag(col1)  over (order by  ctid)  l,
min(col1) over(order by col1) m  , col2
from so_test 
order by ctid
) a
) a
where st = 'N';

答案 1 :(得分:0)

大多数数据库都支持ANSI标准lead()lag()函数。你可以这样做:

select t.*
from (select t.*,
             lag(word) over (order by no) as prev_word,
             lead(word) over (order by no) as next_word
      from t
     ) t
where prev_word > word or next_word < word
order by word
fetch first 1 word only;

这将输出“乱序”的第一行。您可以将您的应用程序格式化为特定消息。