有表t1
数据如下:
怎么得到如下数据
如果几条数据有name相同的,就根据time来取最前面一条记录就可以了
这个问题第1个回答:
SQL code
这个问题第2个回答:
SQL code
这个问题第3个回答:
SQL code
(爱新觉罗.毓华 2007-10-23于浙江杭州)
/*
数据如下:
数据如下:
不知道你是什么数据库,如果是oracle,或者有rownum的话,那么可以用取余数的办法,比如想每隔5条取一条数据。那么就先用rownum确定每行的号码,然后用每行的号码除以5,取余数,余数为1,2,3,4,0中你可以取任何一个,这样就等于是每个5个取一行了。
至于没有rownum的数据库,那么可能要通过id什么的来取了。
可能还有其他方式方法,不过暂时我还没有想到。
CREATE TABLE #test(zyh INT,
fjbname varchar(10),
jlid INT
)
GO
INSERT INTO #test VALUES(1, 'aaaa', 1)
INSERT INTO #test VALUES(1, 'bbbb', 2)
INSERT INTO #test VALUES(2, 'vvvv', 2)
INSERT INTO #test VALUES(3, 'vvvvv', 1)
GO
SELECT
*
FROM
#test main
WHERE
NOT EXISTS(
SELECT *
FROM #test sub
WHERE main.zyh = sub.zyh AND main.jlid > sub.jlid
)
GO
zyh fjbname jlid
----------- ---------- -----------
1 aaaa 1
2 vvvv 2
3 vvvvv 1
(3 行受影响)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)