distinct必须放在开头(distinct作用于后面所有的列吗)

http://www.itjxue.com  2023-01-25 11:02  来源:未知  点击次数: 

SQL中distinct的用法是什么?

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。

表A:

表B:

1.作用于单列

select distinct name from A

执行后结果如下:

2.作用于多列

示例2.1

select distinct name, id from A

执行后结果如下:

实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持。

示例2.2

select distinct xing, ming from B

返回如下结果:

返回的结果为两行,这说明distinct并非是对xing和ming两列“字符串拼接”后再去重的,而是分别作用于了xing和ming列。

3.COUNT统计

select count(distinct name) from A; ?--表中name去重后的数目, SQL Server支持,而Access不支持

count是不能统计多个字段的,下面的SQL在SQL Server和Access中都无法运行。

select count(distinct name, id) from A;

若想使用,请使用嵌套查询,如下:

select count(*) from (select distinct xing, name from B) AS M;

4.distinct必须放在开头

select id, distinct name from A; ? --会提示错误,因为distinct必须放在开头

5.其他

distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。例如,假如表A有“备注”列,如果想获取distinc name,以及对应的“备注”字段,想直接通过distinct是不可能实现的。但可以通过其他方法实现关于SQL Server将一列的多行内容拼接成一行的问题讨论

在SQL语句中dist是什么意思

dist是 distinct 的缩写,意思是在查询结果中去掉重复的记录。

使用distinct的注意事项:

1、DISTINCT 必须放在第一个参数。

2、DISTINCT 表示对后面的所有参数的拼接取不重复的记录,相当于把 SELECT 表达式的项拼接起来选唯一值。

结构化查询语言简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

扩展资料:

SQL语句语言特点:

1、SQL风格统一

SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录人数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。

2、高度非过程化

非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的操作方式

SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

参考资料来源:百度百科-sql

Oracle里的查询去重语句是怎么写得,求解,最好是有个范例。

给你举个例子:

比如a表有这样几条数据

id name

1 5

2 4

3 5

4 3

那么你要查询名字不同的 语句应该是

select distinc(a.name) from a

那么查询到的结果应该是 name 5 4 3

但是实际情况并不仅仅是这么简单

比如我想查询name 不重复的所有数据

你就应该用到 group by 分组

select distinct(a.name),a.id from a group by a.name

distinct 必须放在开头 而且在查询多个字段的时候需要跟上 group by 这样才能得到你想要的结果

(责任编辑:IT教学网)

更多

推荐免费资源文章