繁体   English   中英

使用引用从同一表中选择行

[英]Selecting rows from the same table using a reference

我有一个名为tblA的表,我有以下一组值。

ID    REF     
---------
1     ASD    
2     null    
3     null    
4     null    
5     FGH     
6     null     

现在,我尝试获取第1至4行(即,起始行将是ref列中值为“ ASD”的那一行,最后一行将是该行的前一个,其中REF列中有一些值,例如“ FGH”) )。

我尝试了关键字之间,但我没有得到正确的答案。

可以使用等级方法:

select * from(
SELECT @rank :=  IF(@prevVal<>ref or ref is null,@rank, @rank+1) AS rank, 
       id,ref,
@prevVal:=ref
FROM   scores
, 
       (SELECT @rank := 0,@prevVal:=null) r 
order by id) m
where m.rank=1

SQL FIDDLE在这里。

SELECT ID, REF, 
    (CASE WHEN REF IS NOT NULL THEN @refs := @refs + 1 ELSE @refs END) AS counter
FROM (  SELECT ID, REF
        FROM tblA, (SELECT @refs := 0) AS vars
        WHERE ID >= 1
        ORDER BY ID ASC) AS h
HAVING counter = 1

这应该为您工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM