SQL选择唯一:搜索不同的值
选择不同的简介
在某些情况下,您可能希望从字段中检索数据,同时也希望消除查询输出中的重复结果。SELECT DISTINCT语句可以与条件(如特定列)一起使用,以从表中检索唯一的字段数据。从字段请求唯一值可能有许多不同的原因。SELECT DISTINCT语句对于那些涉及分析和报告的任务非常有用。
Select Distinct语句的基本语法如下:
SELECT DISTINCT
来自
学生卡 | student_class. |
04521 | Oracle 101. |
04522 | 介绍SQL |
04523 | 介绍SQL |
04524. | 数据库管理 |
04525. | 报告生成 |
04526. | 数据库管理 |
04527 | 数据库管理 |
04528 | 数据库管理 |
04529. | Oracle 101. |
04530. | 数据库管理 |
04531. | 介绍SQL |
04532 | 数据库管理 |
04533 | 数据库管理 |
你可以看到“数据库管理”似乎是这学期最受欢迎的一门课;然而,学校现在并不想看哪个班最受欢迎。学校要求查看这学期上了哪些课,我们将使用SELECT DISTINCT来满足他们的要求。SELECT DISTINCT将与STUDENT_CLASS列和注册表一起使用。
选择Distint Student_Class.
从
入学;
student_class. |
Oracle 101. |
介绍SQL |
数据库管理 |
报告生成 |
现在你可以看到这学期选的不同课程的列表。
我们的第二个例子:
第二个例子是用于杂志出版的表。发布公司希望看到其订阅者所在的不同引用的列表,可以使用SELECT DISTINCT语句以及用于订阅者配置文件的表和城市列来检索与订阅者配置文件关联的唯一城市。在杂志出版物的情况下,如果使用SELECT语句而不使用DISTINCT子句,那么它们的输出将包含城市的重复情况,这些城市在确定其订阅者居住的城市时效率不高,输出将相对复杂。
订户位置配置文件表内容:客户ID号、客户所在城市和客户状态
表名称:位置
列:cust_id,cust_city和cust_state
从地点选择*
cust_id. | cust_city. | CUST_STATE |
101 | 弗洛伊德 | 纽约 |
202 | 罗利 | 北卡罗莱纳 |
303 | 弗洛伊德 | 维吉尼亚州 |
404 | 路易斯维尔 | 肯塔基州 |
505 | 威明顿 | 北卡罗莱纳 |
606. | 威明顿 | 北卡罗莱纳 |
正如您所看到的,弗洛伊德市有多个条目,威尔明顿市的一个以上的条目
您可以使用以下方法从CUST_CITY列中选择唯一的值:
选择DISTINCT CUST_CITY.
从地点;
cust_city. |
弗洛伊德 |
罗利 |
路易斯维尔 |
威明顿 |
从输出中消除了重复值。“等待......已经有不同状态的参赛作品,两者都有名为Floyd在地点表”,人们可以表达。在这种情况下,我们的查询应该变得更加精致。
对于查找唯一值时应包含多个列的情况,可以将不同的关键字与表和列的组合一起使用。在我们的示例中,组合Cust_City和Cust_State列将是合适的。
选择distinct cust_city,cust_state
从地点;
cust_city. | CUST_STATE |
弗洛伊德 | 纽约 |
罗利 | 北卡罗莱纳 |
弗洛伊德 | 维吉尼亚州 |
路易斯维尔 | 肯塔基州 |
威明顿 | 北卡罗莱纳 |
现在,您看到唯一的位置显示,因为所有城市状态组合都是唯一的。
然后,您可以通过使用Order By子句以有序方式显示输出。请注意,如果在SELECT DISTINCE查询中使用列的组合,则还应与ORDER BY子句一起使用相同的列组合。
选择distinct cust_city,cust_state
从位置
Cust_city,Cust_State订购;
cust_city. | CUST_STATE |
弗洛伊德 | 纽约 |
弗洛伊德 | 维吉尼亚州 |
路易斯维尔 | 肯塔基州 |
罗利 | 北卡罗莱纳 |
威明顿 | 北卡罗莱纳 |
第三个例子:
在第三个示例中,您有一个持有拼写比赛的组织的表。组织请求查看哪些单词已错拼写。
比赛表格内容:参赛人数及拼错词。
表名称:拼写错误
列:参赛者_Num和Contreentant_Word
SELECT * FROM拼错的;
CONTESTANT_NUM | 参赛者_Word. |
01. | 毫无疑问 |
02. | 小测验 |
03. | 消失 |
04. | 解释 |
05. | 消失 |
06. | 演习 |
07. | 发音 |
08. | 毅力 |
09. | 解释 |
10. | 优先级 |
正如你所看到的,一些单词被拼错的情况不止一次发生在参赛者身上。
选择不同的CONTESTANT_WORD
从
拼写错误;
参赛者_Word. |
毫无疑问 |
小测验 |
消失 |
解释 |
演习 |
发音 |
毅力 |
解释 |
优先级 |
在这种情况下,您发现查询不仅可以帮助您找到唯一值,而且您的查询还可以帮助您发现一个错误地输入数据库的单词。我们可以看到显示“解释”以及“解释”。您可以进行更正的信息,然后可以执行查询,该查询将显示以下输出:
参赛者_Word. |
毫无疑问 |
小测验 |
消失 |
解释 |
演习 |
发音 |
毅力 |
优先级 |
然后我们可以使用ORDER BY以有序的格式显示结果:
选择不同的CONTESTANT_WORD
从
拼错
由CONTESTANT_WORD秩序;
参赛者_Word. |
消失 |
解释 |
演习 |
毅力 |
优先级 |
发音 |
小测验 |
毫无疑问 |
结论
选择DISTINCT从字段中检索唯一的值,该字段可以帮助阵列可根据报告数据库输入定位错误。准备探索SQL报告服务?
不仅选择了检索所请求的数据的不同帮助,还可以帮助确保以更容易读取的方式显示输出。