查询显示
num1---num6里面有49,
下一行也显示出来
select * from basedata where 49 in (num1,num2,num3,num4,num5,num6)
这样只能查询出满足49的行(请看第2张图)
我用的是 microsoft SQL
追答是SQL server么?我没用过,但是思路就是通过主键值查找下一条记录,你把ROWNUM换成主键试试。
能否写出来看下?
追答你的表没有自增的主键的,你要建表的时候考虑到这些,一般的肯定要主键的
资料要这样整理.
追答假设有十笔资料
情况1:
第1、3、5笔资料有49,下一笔资料则是取第6笔资料对吧。
情况2:
第3、8、10笔资料有49,请问下一笔,是不取,还是其他情况?
情况1:
第1、3、5笔资料有49,则取1,2,3,4,5,6笔资料.
因为第1有49, 要显示第1和第2笔的资料,
第3有49, 则要显示第3和第4的资料,
第5有49, 要显示第5和第6的资料,
以此类推显示.
我试了一下,253654522 给的语句可以实现你的功能,按如下语句调试一下,看看是否是你需要的。
with t1 as (select * ,row_number()over(order by [ID]) as Row from [Table])
,t2 as (select * from t1 where 'clo' IN([Num1],[Num2],***) )
select * from t2
union
select * from t1 where Row in (select Row+1 from t2)
order by Row
当然 Select * 最好改成 Select 字段