将相连的两条记录的同一个字段比较
如何书写SQL语句来判断同一个字段(比方sexflag)两条记录的值是否相同?
也就是说比较记录1与2,2与3,3与4 ,4与5的sexflag字段值是否相等:
ID Name sexflag
1 Bill 0
2 Bill 0
3 Bill 1
4 kate 0
5 kate 1
------解决方案--------------------相不相同可以直接比了
select a.ID , a.Name , a.sexflag, b.sexflag
from T a
inner join T b
on a.id+1=b.id
------解决方案----------------------子查詢
select a.ID
, a.Name
, a.sexflag
, (select sexflag from T where id=a.id+1)
from T a
------解决方案--------------------create table tb (ID int, Name varchar(10), sexflag int)
insert into tb values(1, 'Bill ', 0 )
insert into tb values(2, 'Bill ', 0)
insert into tb values(3, 'Bill ', 1)
insert into tb values(4, 'kate ', 0)
insert into tb values(5, 'kate ', 1)
go
SELECT *,case when (SELECT TOP 1 sexflag FROM TB WHERE id> A.id order by id ) - sexflag = 0 then '相同 ' else '不相同 ' end 比较结果
FROM TB A
drop table tb
/*
ID Name sexflag 比较结果
----------- ---------- ----------- ------
1 Bill 0 相同
2 Bill 0 不相同
3 Bill 1 不相同
4 kate 0 不相同
5 kate 1 不相同
(所影响的行数为 5 行)
*/