我认为这些是同义词,但我在 Microsoft SQL 中编写了以下内容:
Select Unique col from
(select col from table1 union select col from table2) alias
但它失败了。 将其更改为
Select Distinct col from
(select col from table1 union select col from table2) alias
修好了。 有人可以解释一下吗?
SELECT UNIQUE
是 Oracle SQL 风格支持的旧语法。 它与SELECT DISTINCT
同义。
使用
SELECT DISTINCT
,因为这是标准 SQL,而 SELECT UNIQUE
是非标准 SQL,在 Oracle 以外的数据库品牌中,SELECT UNIQUE
可能根本无法识别。
Unique 是 Create Table() 指令中使用的关键字,表示字段将包含唯一数据,通常用于自然键、外键等。
例如:
Create Table Employee(
Emp_PKey Int Identity(1, 1) Constraint PK_Employee_Emp_PKey Primary Key,
Emp_SSN Numeric Not Null Unique,
Emp_FName varchar(16),
Emp_LName varchar(16)
)
即某人的社会安全号码可能是您表中的唯一字段,但不一定是主键。
Distinct 用于 Select 语句中,以通知查询当字段包含可能不唯一的数据时,您只希望返回唯一的项目。
Select Distinct Emp_LName
From Employee
您可能有许多具有相同姓氏的员工,但您只想要每个不同的姓氏。
显然,如果您正在查询的字段包含唯一数据,那么 Distinct 关键字就变得多余了。
select unique 对于您想要执行的操作来说不是有效的语法
您想使用 select unique 或 select uniquerow
实际上,您甚至不需要在您想要做的事情中使用不同/不同的行。 您可以通过选择适当的 union 语句参数来消除重复项。
下面的查询本身只会提供不同的值
select col from table1
union
select col from table2
如果你确实想要重复,你就必须这样做
select col from table1
union all
select col from table2
SELECT DISTINCT
和 SELECT UNIQUE
的行为方式相同。 DISTINCT 是 ANSI SQL 标准,而 UNIQUE 是 Oracle 特定语句。
SELECT UNIQUE
是无效语法。 UNIQUE
是在列上添加唯一约束的关键字。
示例: 从学生中选择不同姓名;
创建人员表( Id varchar NOT NULL UNIQUE, 名称 varchar(20) );
在 SQL 中,
UNIQUE
关键字可防止列中的两条记录具有相同的值,而DISTINCT
关键字可在检索数据时删除重复值。
以下是
UNIQUE
和DISTINCT
之间的更多区别:
独特
用作表列上的属性集。 例如,您可以在
UNIQUE
指令中使用 Create Table()
关键字来指示字段将包含唯一数据。 这通常用于外键和自然键。 UNIQUE
约束还可以防止对表进行任何更新或插入,从而导致列或列集中出现重复值。
独特
用于来自
SELECT
查询的数据集。 例如,您可以使用 DISTINCT
确保从 SELECT
查询返回的每条记录都是唯一的。 但是,如果数据集的表列设置为具有唯一标识符、主键或递增数字,则即使使用 DISTINCT
子句,每一行也将是唯一的。