异世医仙人物介绍:distinct的超级疑惑!!!

来源:百度文库 编辑:高校问答 时间:2024/04/30 10:35:06
在"select a,b from c"中我想取得a的distinct唯一值,然后取得与a相应的b字段.
但是我"select distinct a,b from c"这样写的话,distinct把a,b都作为关键词,请问我想对a实行distinct,然后得到与a相关的b,c,d,e,f或者*.
应该怎么办!!!
select a,max(b) as b from table group by a

1.不太明白后面的 "as b"是什么意思
2."a"值是可以从数据库中读出来了,但是"b"值却无法从数据库中读出来了,
3.啊,怎么才可以读出其他值的信息

可以用group分组来替代distinct

比如

select a,max(b) as b,max(c) as c,max(d) as d
from table
group by a

由于a字段有重复的数据,对于同值得a字段,其它字段也可能有多个,所以用MAX函数来只取得一条

如果非用distinct 那只能用子查询了,写起来比较麻烦了

select distinct a,(select top 1 b from table where a=a.a) b,(select top 1 c from table where a=a.a) c
from table a

--------------------------------
看来你对SQL SERVER还不了解
max(b) as b的意思是给通过max函数取得的结果取一个字段名,其实不加也可以,只不过在查询结果里会显示为“无列名”

max函数中所对应的b、c等均是表中的其它字段,要根据你表中的实际字段来写。

建议你还是先学学SQL SERVER基础知识吧,其实我写的语句很简单了。