博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2008--查询(2)--Distinct
阅读量:2240 次
发布时间:2019-05-09

本文共 1043 字,大约阅读时间需要 3 分钟。

Distinct,经百度可知词义是:有区别的。所以我们再次引申为“不许重复”的。也就是通过这个关键字我们可以在数据库中查找不重复的记录。下面说一说distinct的用法。 

一、查询所有信息

select S_number , S_name, Nation , Address  from t_student--将所有学生信息中的编号,姓名,民族,地址都列出来。

代码效果如下:(将表中11条记录全部列出)

二、删除重复项:

为了方便看出在学生心中查看共有几个专业,我们就可以使用distinct。

select distinct Department   from t_student--distinct Department 会过滤掉重复的department

代码效果如下:(只有三项)

三、distinct也可以过滤掉重复的null,  或者说如果有多个null时,只输出一个

 

在上图中我们可以看出,address中有两个null,表示这两个人的具体地址不详,那么我们的distinct遇到null会出现什么情况,会报错吗。让我们来试一试。

代码:

select distinct Address  from t_student

代码效果:可以将null过滤出来,并且只出现一个null。(只显示了10条记录,表示将重复的null记录筛选掉了)

四、distinct的组合字段使用

当我们想过滤信息中各民族中的人群有哪些政治地位的。我们就要使用distinct的组合了。

代码:

select distinct Nation ,Politics   from t_student

代码效果:(只产生了8条记录,将相同的记录筛选掉了)

我们可以与上一张图比较,可以看出,信息表中汉族有三种政治身份。回族中只有一种身份,等等。

五、distinct的错误用法。

在第四条用法中,我们可以看出,在distinct总是在字段名的前面,那我们能不能这样使用呢

代码:

select  Nation ,distinct Politics   from t_student

代码效果如下:

我想出现这样的错误,经过查询我们得知。这是一个逻辑错误,我们可以知道在上述语句中select Nation 是将信息表中的11条记录全部调出,而distinctPolitics的作用是将表中的Politics字段进行筛选从而只会产生3条记录,因此没法和前面11条记录进行匹配显示。

 

本文章使用的素材:

或者

 

你可能感兴趣的文章
Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
查看>>
java中System.exit()方法
查看>>
在hbase shell中过滤器的简单使用
查看>>
java静态方法和实例方法
查看>>
java多线程并发去调用一个类的静态方法,会有问题吗?
查看>>
关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
查看>>
Java命令学习系列(一)——Jps
查看>>
java如何计算程序运行时间
查看>>
Java Calendar 类的时间操作
查看>>
Java]NIO:使用Channel、Charset(字符集)、使用Charset传递CharBuffer
查看>>
Eclipse下运行Maven项目提示缺少maven-resources-plugin:2.4.3
查看>>
Java 中int、String的类型转换
查看>>
比较两个JSON字符串是否完全相等
查看>>
删除JSONArray中的某个元素
查看>>
Linux下Tomcat重新启动
查看>>
使用HttpClient请求另一个项目接口获取内容
查看>>
HttpClient get和HttpClient Post请求的方式获取服务器的返回数据
查看>>
net.sf.json Maven依赖配置
查看>>
Could not initialize class net.sf.json.JsonConfig错误解决
查看>>
Java编程思想重点笔记(Java开发必看)
查看>>