DECLARE @a TABLE(ID int,NAME VARCHAR(20)) INSERT @a SELECT 1 ,'ABC' UNION ALL SELECT 2 ,'ABC' UNION ALL SELECT 3 ,'ABC' UNION ALL SELECT 4 ,'BBB'SELECT a.*,b.* FROM @a a,@a b WHERE a.id>(SELECT MIN(id) FROM @a WHERE NAME=a.name) AND b.id=(SELECT MIN(id) FROM @a WHERE NAME=a.name)--result /*ID NAME ID NAME ----------- -------------------- ----------- -------------------- 2 ABC 1 ABC 3 ABC 1 ABC(所影响的行数为 2 行)*/
OK,那个ID不是有序的,请问这如何是好?
好吧,可能是我没有讲清楚。 表结构 ID NAME 1 ABC 2 ABC 3 ABC 4 BBB ....
最后想要的结果是 ID NAME PID PNAME 2 ABC 1 ABC 3 ABC 1 ABC如果 表结构 ID NAME 2 ABC 1 ABC 3 ABC 4 BBB ....
最后想要的结果是 ID NAME PID PNAME 1 ABC 2 ABC 3 ABC 2 ABC不知道这样是如何做? 就是谁在第一条的,就到右面的Pid Pname去 后面的数据都是如此。
DECLARE @a TABLE(ID int,NAME VARCHAR(20)) INSERT @a SELECT 2 ,'ABC' UNION ALL SELECT 1 ,'ABC' UNION ALL SELECT 3 ,'ABC' UNION ALL SELECT 4 ,'BBB'
SELECT a.*,b.* FROM @a a,@a b WHERE a.id<>(SELECT TOP 1 id FROM @a WHERE NAME=a.name) AND b.id=(SELECT TOP 1 id FROM @a WHERE NAME=a.name)
--result /* ID NAME ID NAME ----------- -------------------- ----------- -------------------- 1 ABC 2 ABC 3 ABC 2 ABC(所影响的行数为 2 行) */
INSERT @a SELECT 1 ,'ABC'
UNION ALL SELECT 2 ,'ABC'
UNION ALL SELECT 3 ,'ABC'
UNION ALL SELECT 4 ,'BBB'SELECT a.*,b.* FROM @a a,@a b WHERE a.id>(SELECT MIN(id) FROM @a WHERE NAME=a.name)
AND b.id=(SELECT MIN(id) FROM @a WHERE NAME=a.name)--result
/*ID NAME ID NAME
----------- -------------------- ----------- --------------------
2 ABC 1 ABC
3 ABC 1 ABC(所影响的行数为 2 行)*/
OK,那个ID不是有序的,请问这如何是好?
表结构
ID NAME
1 ABC
2 ABC
3 ABC
4 BBB
....
最后想要的结果是
ID NAME PID PNAME
2 ABC 1 ABC
3 ABC 1 ABC如果
表结构
ID NAME
2 ABC
1 ABC
3 ABC
4 BBB
....
最后想要的结果是
ID NAME PID PNAME
1 ABC 2 ABC
3 ABC 2 ABC不知道这样是如何做?
就是谁在第一条的,就到右面的Pid Pname去
后面的数据都是如此。
INSERT @a SELECT 2 ,'ABC'
UNION ALL SELECT 1 ,'ABC'
UNION ALL SELECT 3 ,'ABC'
UNION ALL SELECT 4 ,'BBB'
SELECT a.*,b.* FROM @a a,@a b WHERE a.id<>(SELECT TOP 1 id FROM @a WHERE NAME=a.name)
AND b.id=(SELECT TOP 1 id FROM @a WHERE NAME=a.name)
--result
/*
ID NAME ID NAME
----------- -------------------- ----------- --------------------
1 ABC 2 ABC
3 ABC 2 ABC(所影响的行数为 2 行)
*/