以下代码返回错误消息:
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}
答案 0 :(得分:1)
SELECT UNIQUE 是Oracle的SQL风格支持的旧语法。它与SELECT DISTINCT同义。
使用 SELECT DISTINCT ,因为这是标准SQL,SELECT UNIQUE是非标准的,而在Oracle以外的数据库品牌中,可能根本无法识别 SELECT UNIQUE
答案 1 :(得分:1)
“WHERE UNIQUE”不是我见过的有效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服务器中实现