如何使用UNIQUE Operator SQL

时间:2013-10-09 05:32:24

标签: sql sql-server-2012

以下代码返回错误消息:

Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'UNIQUE'.

代码:

SELECT E.ename, D.dname
FROM Emp E, Dept D
WHERE UNIQUE
    (SELECT W.did
    FROM Works W
    WHERE W.did = D.did)

员工,工作,部门是一个非常自我解释的关系。那么如何在这个实例中正确使用UNIQUE运算符呢?

顺便说一句,这是我的教授所显示的语法,但我无法弄清楚。我只找到在UNIQUE语句中使用CREATE TABLE的结果。我看到DISTINCT的使用,而不是UNIQUE

SCHEMA:

作品= {fk(eid),fk(主要(did))}

Emp = {primary(eid),ename,age,salary}

Dept = {primary(did),dname,budget,managerid}

3 个答案:

答案 0 :(得分:1)

SELECT UNIQUE 是Oracle的SQL风格支持的旧语法。它与SELECT DISTINCT同义。

使用 SELECT DISTINCT ,因为这是标准SQL,SELECT UNIQUE是非标准的,而在Oracle以外的数据库品牌中,可能根本无法识别 SELECT UNIQUE

Duplicate

答案 1 :(得分:1)

“WHERE UNIQUE”不是我见过的有效sql语法(多年/产品)

你的教授可能是:

  • 一个。测试你
  • 湾使用“伪代码”
  • ℃。用逻辑术语思考,而不是精确的sql
  • ......
  • ž。错误地注明了?

这里也没有形成谓词,与生成真/假的内容进行比较是什么?

&安培;您的教授也会被建议使用ANSI连接语法

SELECT E.ename, D.dname
FROM Emp E
INNER JOIN Dept D ON /* what? */
WHERE /* what? could it be EXISTS ?*/
 exists
    (SELECT W.did
    FROM Works W
    WHERE W.did = D.did)

答案 2 :(得分:1)

SQL标准中有一个名为UNIQUE的逻辑运算符。如果输入中的所有元组都是不同的,则计算结果为true。

但它没有在我知道的任何版本的SQL服务器中实现