Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当达到条件时,如何与其他进一步记录一起跳过?_Sql_Postgresql - Fatal编程技术网

Sql 当达到条件时,如何与其他进一步记录一起跳过?

Sql 当达到条件时,如何与其他进一步记录一起跳过?,sql,postgresql,Sql,Postgresql,我有SQL问题。假设我们有记录: 在上面的记录中,我们需要选择带有Cancel的记录,但只有2条记录以Cancel开始,而不是全部记录。顶部或任何位置可能有多个取消 请帮我创建一个查询。应该可以。我刚刚在第1列上订购了ASC,但如果您不关心选择了哪个索引,您可以删除该行 SELECT * FROM YourTable WHERE col2='Cancel' ORDER BY col1 LIMIT 2 如果需要初始取消集,可以执行以下操作: select t.* from t where t.c

我有SQL问题。假设我们有记录:

在上面的记录中,我们需要选择带有Cancel的记录,但只有2条记录以Cancel开始,而不是全部记录。顶部或任何位置可能有多个取消


请帮我创建一个查询。

应该可以。我刚刚在第1列上订购了ASC,但如果您不关心选择了哪个索引,您可以删除该行

SELECT *
FROM YourTable
WHERE col2='Cancel'
ORDER BY col1
LIMIT 2

如果需要初始取消集,可以执行以下操作:

select t.*
from t
where t.col2 = 'cancel' and
      t.col1 < (select min(t2.col1)
                from t t2
                where t2.col2 <> 'cancel'
               );
不存在以下情况:


请参阅。

Top1234上可能有两个以上的取消。取消只是一个行号,而不是表中的一列。请检查有问题的图像编辑。我们会根据创建时间对记录进行排序,我们希望在非取消状态之前保留顶级记录。表示图像中只有2条记录,而不是第4条记录。顶部或顶部可能有多个取消记录anywhere@ankit . . . 2开始意味着表中有一个排序列。表表示无序集。这是您应该使用的列。是否有像id这样的主键或表示行顺序的列?如果没有,则启动并不意味着什么,因为表是无序的数据集。您能显式显示您试图获取的结果吗?@forpas是的,有主键,但我们会根据创建时间对记录进行排序,我们希望记录在非取消状态之前都是顶级记录。表示图像中只有2条记录,而不是第4条one@Jeremy请检查是否已编辑question@ankit我仍然看不到您期望的查询结果。是的,在fiddle中,它响应我想要的,但在我的代码中不工作。可能是我正在按id而不是按创建日期对记录进行排序。然后,idselect t.* from tablename t where col = 'Cancel' and not exists ( select 1 from tablename where creation_date < t.creation_date and col <> t.col )