SELECT * FROM TB T WHERE NOT EXISTS(SELECT 1 FROM TB WHERE T_ID=T.T_ID AND T_LITTLE_ID<T.T_LITTLE_ID)?
可以只做一层循环,只循环t_little_id,把T_ID做条件。没看懂你的问题
SELECT * FROM TB T WHERE T_LITTLE_ID=(SELECT MIN(T_LITTLE_ID) FROM TB WHERE T_ID=T.T_ID) 赞同77老大的, 楼主用两个while,会影响速度的
DECLARE @t_id INT SELECT DISTINCT t_id INTO #book FROM book WHILE EXISTS(SELECT 1 FROM #book) BEGIN SELECT TOP 1 @t_id=t_id FROM #book ORDER BY t_id 下一层循环 DELETE FROM #book WHERE t_id=@t_id END drop table #book
SELECT * FROM TB T WHERE T_LITTLE_ID=(SELECT MIN(T_LITTLE_ID) FROM TB WHERE T_ID=T.T_ID)去重?
文学
->小说
->散文
......
经济管理
->管理学
......
这种样子的,但是用while嵌套while外层while输出大类名称,如文学,经济管理时,会把数据库中的所有内容都输出一次,就等于了文学输出5次,他下面的小类也输出五次,然后我的意思是如果按照上面这个数据库设计,如何做到相同t_id的内容之输出1次,后来想想自己解决了,数据库分成两个就可以了
赞同77老大的,
楼主用两个while,会影响速度的
DECLARE @t_id INT
SELECT DISTINCT t_id INTO #book FROM book
WHILE EXISTS(SELECT 1 FROM #book)
BEGIN
SELECT TOP 1 @t_id=t_id FROM #book ORDER BY t_id
下一层循环
DELETE FROM #book WHERE t_id=@t_id
END
drop table #book