2

以下のコードはエラー メッセージを返します。

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では、この場合に演算子を正しく使用するにはどうすればよいでしょうか。

ところで、これは私の教授が示した構文ですが、私には理解できません。ステートメントで使用UNIQUEした結果のみが見つかります。CREATE TABLEの使用が見られますがDISTINCT、そうではありませんUNIQUE

スキーマ:

Works = {fk( eid),fk(primary( did))}

Emp = {プライマリ( eid)、名前、年齢、給与}

部門 = {primary( did), dname, Budget, managerid}

4

3 に答える 3

1

SELECT UNIQUEは、Oracle の SQL フレーバーでサポートされている古い構文です。SELECT DISTINCT と同義です。

これは標準 SQL であり、SELECT UNIQUE は非標準であるため、 SELECT DISTINCTを使用します。また、Oracle 以外のデータベース ブランドでは、SELECT UNIQUEがまったく認識されない場合があります。

複製

于 2013-10-09T05:36:18.893 に答える
1

SQL 標準には、UNIQUE と呼ばれる論理演算子があります。入力内のすべてのタプルが異なる場合、true と評価されます。

しかし、私が知っているSQLサーバーのどのバージョンにも実装されていません

于 2014-01-28T21:58:11.167 に答える