你这样写试试看吧select distinct name,ID from vw_test1 order by ID
to klan(因帅被判7年) : 这样当然是没有语法错误,但不能满足要求 这样SELECT出来的是 name和id不重复的值,不是name的
select name from vw_test1 group by name order by min(id) select distinct name from vw_test1 相当于: select distinct name from (SELECT top 100 * from table1 ORDER BY ID desc ) as v 当然不排序
就因为一个name 有多个id,sql server不知道按哪个id排序,才排不了序
先查看是否有多个ID,如果有建议在加一个条件如ORDER BY ID desc,age desc
CREATE VIEW dbo.VW_test1 AS SELECT top 100 name,name+ID AS ID from table1 ORDER BY ID desc 然后 select distinct name from vw_test1
to Rewiah(乘长风) : 如果想按ID排序,取distinct name,SQL语句该如何写呢?to laughsmile(海边的星空): 你的方法不能按正确顺序排
一个name可能对应多个ID,当然不能以ID来排序显示name
CREATE VIEW dbo.VW_test1 AS SELECT top 100 * from table1 ORDER BY ID desc go不变select name from vw_test1 group by name order by max(id) desc>>就因为一个name 有多个id,sql server不知道按哪个id排序,才排不了序实际上人也派不了序,除非人先定一个规则,比如,按最小的id排序(上午回答的做法,搂主你试过没有,如果没试是不是有点浪费你我和大家的时间?),按最小的id排序(这次的写法,如果看了上午的应该很快能想到这个的) 这个规则不是由我或者大家定,而是由楼主定。
少改了一个字,第二个“按最小的id排序”应该改为“按最大的id排序”
同意楼上的做法.如果是按最大的id 排序可以如下做法:select max(name) as name,max(id) as id from vw_test1 group by name order by desc试试...
这样当然是没有语法错误,但不能满足要求
这样SELECT出来的是 name和id不重复的值,不是name的
select distinct name from vw_test1
相当于:
select distinct name from (SELECT top 100 * from table1
ORDER BY ID desc
) as v
当然不排序
AS
SELECT top 100 name,name+ID AS ID from table1
ORDER BY ID desc
然后
select distinct name from vw_test1
如果想按ID排序,取distinct name,SQL语句该如何写呢?to laughsmile(海边的星空):
你的方法不能按正确顺序排
AS
SELECT top 100 * from table1
ORDER BY ID desc
go不变select name from vw_test1 group by name order by max(id) desc>>就因为一个name 有多个id,sql server不知道按哪个id排序,才排不了序实际上人也派不了序,除非人先定一个规则,比如,按最小的id排序(上午回答的做法,搂主你试过没有,如果没试是不是有点浪费你我和大家的时间?),按最小的id排序(这次的写法,如果看了上午的应该很快能想到这个的)
这个规则不是由我或者大家定,而是由楼主定。