SQL代码背后的逻辑不明确

时间:2017-01-27 10:30:44

标签: sql ibm-midrange db2-400

我遇到过如下的SQL代码

SELECT  DISTINCT FLD1, FLD2, FLD3, FLD4 FROM            
TBL1 WHERE FLD1 = 'MFG' AND FLD2 = '1'

我怀疑在FLD1之前应用的DISTINCT关键字。存在过滤条件以仅选择FLD1 ='MFG'的那些记录。那么明显不同会有什么不同吗?

我在没有DISTINCT的情况下运行相同的SQL,并且检索到的记录数与DISTINCT相同。

这是为iSeries上的DB2数据库编写的。

1 个答案:

答案 0 :(得分:3)

它消除了所有重复记录,只获取了唯一记录。

示例:

表员工

Id     Name      Salary
1      Alex      2000
2      Alxender  1000
3      Paul      2000
4      Alex      2000
select distinct Salary 
from Employees;

它将返回:

Salary
2000
1000
select distinct Name,Salary 
from Employees;

将返回:

Name      Salary
Alex      2000
Alxender  1000
Paul      2000

查询:

select distinct Salary,Name 
from Employees 
where salary = 2000;

将返回:

Name      Salary
Alex      2000    
Paul      2000