如果用unique判断唯一性?

TWWH 2005-09-04 04:03:40
最近我做了个题目:
成绩表:成绩(学号,课程名,成绩)
用SQL语句写出只选修一门的学生的学号、课程名、成绩。

它给出的答案是:
SELECT 学号,课程名,成绩 
FROM 成绩 AS X
WHERE UNIQUE (SELECT 学号,课程名,成绩 FROM 成绩AS Y WHERE Y. 学号=X.学号)
但我在sql server下实验通不过,是不是不支持这种用法?

我想问上面答案的问题在哪?注意,我不是不会做这个查询,而是想问问答案中的unique用法是怎么回事?请不要用另外的语句,好吗?
...全文
155 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
TWWH 2005-09-04
  • 打赏
  • 举报
回复
楼上的朋友:
如何查询我会的,我的语句是:
select 学号,课程名,成绩 from 成绩 where 学号 IN
(select 学号 from 成绩 group by 学号 having count(课程名)=1)

我只是想知道它的答案为什么不正确?
vivianfdlpw 2005-09-04
  • 打赏
  • 举报
回复
SELECT 学号,课程名,成绩 
FROM 成绩 AS X
WHERE NOT EXISTS (SELECT 1 FROM 成绩 WHERE 学号=X.学号 AND 课程名<>X.课程名)

or

SELECT 学号,课程名,成绩 
FROM 成绩 AS X
WHERE (SELECT count(1) FROM 成绩 WHERE 学号=X.学号)=1
zlp321002 2005-09-04
  • 打赏
  • 举报
回复
UNIQUE 约束可以:

作为表定义的一部分在创建表时创建。


如果组成 UNIQUE 约束的列或列组合只包含唯一值,则可向现有表添加 UNIQUE 约束。一个表可含有多个 UNIQUE 约束。


修改或删除已有的 CHECK 约束。例如,可能要使表的 UNIQUE 约束引用其它列或要更改聚集索引的类型。

--查询好象不能这么用吧!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧