sql 去重并排序问题
字段1字段2字段31aA2aB3bV4bF5cO6dG类似上边的表,现在想去重查询出字段2所有值,然后按字段1排序,应该怎么写sql语句?结果出来应该是:abcd同志们:...
字段1 字段2 字段3
1 a A
2 a B
3 b V
4 b F
5 c O
6 d G
类似上边的表,现在想去重查询出字段2所有值,然后按字段1排序,应该怎么写sql语句?
结果出来应该是:
a
b
c
d
同志们:select distinct 字段2 from 表 order by 字段1
这种写法是错误的,sql提示:若指定了SELECT DISTINCT,那么ORDER BY子句中的项就必须出现在选择列表中。
walkmens,您说的还是没有进行排序啊,我主要是想去重后按字段1排序的。。。
意思就是select distinct 字段2 from 表 order by 字段1,当然这么写是错误的。
怎么能实现这样的查询啊?
帅气の魔鬼:你的语句是错误的,通不过的。。。 展开
1 a A
2 a B
3 b V
4 b F
5 c O
6 d G
类似上边的表,现在想去重查询出字段2所有值,然后按字段1排序,应该怎么写sql语句?
结果出来应该是:
a
b
c
d
同志们:select distinct 字段2 from 表 order by 字段1
这种写法是错误的,sql提示:若指定了SELECT DISTINCT,那么ORDER BY子句中的项就必须出现在选择列表中。
walkmens,您说的还是没有进行排序啊,我主要是想去重后按字段1排序的。。。
意思就是select distinct 字段2 from 表 order by 字段1,当然这么写是错误的。
怎么能实现这样的查询啊?
帅气の魔鬼:你的语句是错误的,通不过的。。。 展开
9个回答
展开全部
SELECT A.* FROM 表 A JOIN
(
SELECT MIN(字段1) AS 字段1,字段2 FROM 表 GROUP BY 字段2
) B ON (A.字段1=B.字段1 AND A.字段2=B.字段2)
ORDER BY A.字段1
没有测试,想着就写了,你试一下吧
(
SELECT MIN(字段1) AS 字段1,字段2 FROM 表 GROUP BY 字段2
) B ON (A.字段1=B.字段1 AND A.字段2=B.字段2)
ORDER BY A.字段1
没有测试,想着就写了,你试一下吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select
distinct
name
from
a
where
eid
in(select
eid
from
b
group
by
eid)
要求查询在b表出现过的企业名称,不重复
这样就够了.至于根据时间倒叙
和结果没影响.
distinct
name
from
a
where
eid
in(select
eid
from
b
group
by
eid)
要求查询在b表出现过的企业名称,不重复
这样就够了.至于根据时间倒叙
和结果没影响.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Select distinct 字段1,字段2 from 表名 order by 字段1
保证正确,我刚刚试过了,使用distinct(不重复)后order by 的字段也必须出现在Select之中
保证正确,我刚刚试过了,使用distinct(不重复)后order by 的字段也必须出现在Select之中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create table tb
(
ID int,
VALUE varchar(10)
)
insert into tb(ID,VALUE) values(1,'A')
insert into tb(ID,VALUE) values(2,'A')
insert into tb(ID,VALUE) values(3,'B')
insert into tb(ID,VALUE) values(4,'B')
insert into tb(ID,VALUE) values(5,'C' )
insert into tb(ID,VALUE) values(6,'D' )
select VALUE from tb where [ID] in(
select min([ID]) from tb group by VALUE
) order by [ID]
drop table tb
(
ID int,
VALUE varchar(10)
)
insert into tb(ID,VALUE) values(1,'A')
insert into tb(ID,VALUE) values(2,'A')
insert into tb(ID,VALUE) values(3,'B')
insert into tb(ID,VALUE) values(4,'B')
insert into tb(ID,VALUE) values(5,'C' )
insert into tb(ID,VALUE) values(6,'D' )
select VALUE from tb where [ID] in(
select min([ID]) from tb group by VALUE
) order by [ID]
drop table tb
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 字段2 from 表 order by 字段1 asc 或者 desc
asc 是正序 desc 是倒序 估计你的错误就是没加
asc 是正序 desc 是倒序 估计你的错误就是没加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询