以下代码返回错误消息:
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)Employee,Works,Department是一个很好的自我解释的关系。那么在这种情况下如何正确使用UNIQUE运算符呢?
顺便说一句,这是我的教授给我展示的语法,但我搞不懂。我只找到在CREATE TABLE语句中使用UNIQUE的结果。我看到了DISTINCT的用法,但没有看到UNIQUE的用法
模式:
Works = {fk(eid),fk(主要(did))}
Emp ={主要(eid),ename,年龄,薪水}
部门={主要(did),域名,预算,管理员}
发布于 2013-10-09 13:36:19
Oracle SELECT UNIQUE是受风格的支持的旧语法。它与SELECT DISTINCT同义。
使用Oracle SELECT DISTINCT,因为这是标准,而SELECT UNIQUE是非标准的,并且在除Oracle之外的其他数据库品牌中,SELECT UNIQUE可能根本无法识别。
发布于 2013-10-09 14:21:15
"WHERE UNIQUE“不是我见过的有效sql语法(在过去几年/产品中)
你的教授可能是:
这里也没有形成谓词,什么与生成true/false的内容进行比较?
您的教授也会被建议使用ANSI join语法
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)发布于 2014-01-29 05:58:11
在SQL标准中有一个称为UNIQUE的逻辑运算符。如果其输入中的所有元组都是不同的,则它的计算结果为true。
,但据我所知,它没有在任何版本的SQL server中实现。
https://stackoverflow.com/questions/19263875
复制相似问题