现有三个问题,要请教高手
问题1。
一个学生表(id,name,score,flag)分别为id,名字,分数,标识
我要实现的是如何查出第一个flag不连续的值
比如学生表中的内容是这样的
1 aa 80 1
2 bb 64 2
3 cc 59 3
4 dd 80 5
5 ee 80 6
从id=4时 flag就不连续了 我要查出第一个不连续的值 也就是说flag=5,该怎么用sql语句实现呢?问题2。
现在有一个表tb(id,value) 我还有一串字符串id:value格式的(比如说为1:203,2:300,3:98)我要将这个字符串解析出来将值分别插入到tb表中,用sql语句怎么实现啊?问题3
现有一个表table 表名为pages(id,url,title,body)里面储存了很多的网页,网页的url地址,title和网页的内容,然后给一个关键字,你用一个sql查询将url匹配的排在最前,title匹配的其次,body匹配的最后,没有任何字段匹配的不返回
用sql语句怎么实现呢?
谢谢高手了
问题1。
一个学生表(id,name,score,flag)分别为id,名字,分数,标识
我要实现的是如何查出第一个flag不连续的值
比如学生表中的内容是这样的
1 aa 80 1
2 bb 64 2
3 cc 59 3
4 dd 80 5
5 ee 80 6
从id=4时 flag就不连续了 我要查出第一个不连续的值 也就是说flag=5,该怎么用sql语句实现呢?问题2。
现在有一个表tb(id,value) 我还有一串字符串id:value格式的(比如说为1:203,2:300,3:98)我要将这个字符串解析出来将值分别插入到tb表中,用sql语句怎么实现啊?问题3
现有一个表table 表名为pages(id,url,title,body)里面储存了很多的网页,网页的url地址,title和网页的内容,然后给一个关键字,你用一个sql查询将url匹配的排在最前,title匹配的其次,body匹配的最后,没有任何字段匹配的不返回
用sql语句怎么实现呢?
谢谢高手了
select flag+1
from tb t
where not exists(select 1 from tb where flag=t.flag+1)
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([id] int,[name] varchar(2),[score] int,[flag] int)
insert [tb]
select 1,'aa',80,1 union all
select 2,'bb',64,2 union all
select 3,'cc',59,3 union all
select 4,'dd',80,5 union all
select 5,'ee',80,6
select flag
from tb t
where not exists(select 1 from tb where flag=t.flag-1)
and exists(select 1 from tb where flag<t.flag)/**
flag
-----------
5(1 行受影响)
**/