问一个关于SQL的问题。

ssunday 2003-12-06 10:14:09
Given the table COUNTRY and the statements below:
COUNTRY
ID NAME PERSON_ID CITIES
1 Argentina 1 10
2 Canada 2 20
3 Cuba 2 10
4 Germany 1 0
5 France 7 5

DECLARE c1 CURSOR WITH HOLD FOR SELECT * FROM country ORDER BY person_id,
name
OPEN c1
FETCH c1
COMIT
FETCH c1
Which of the following is the last name obtained form the table?
A. Cuba
B. France
C. Canada
D. Germany
E. Argentina
Answer: C
为什么呢???
...全文
68 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssunday 2003-12-06
  • 打赏
  • 举报
回复
ok,那我就明白了,谢谢啦。
wzh1215 2003-12-06
  • 打赏
  • 举报
回复
不是很理解,不过按题目的思路还是应该选C
zjcxc 元老 2003-12-06
  • 打赏
  • 举报
回复
对啊.

不过,你给出的问题有些不太对劲.
我在SQL 2000中也测试过你的代码. 不支持HOLD及commit
ssunday 2003-12-06
  • 打赏
  • 举报
回复
to zjcxc(邹建): 你的意思是说,指针一开始不用fetch就指着第一条,fetch后就指着第二条吗?那么那个commit呢?不会重置指针吗?
zjcxc 元老 2003-12-06
  • 打赏
  • 举报
回复
因为指针移动做了两次移动后,指针是停在第三条记录.
zjcxc 元老 2003-12-06
  • 打赏
  • 举报
回复
上面写错了.
不是第二条记录,是第三条记录.
zjcxc 元老 2003-12-06
  • 打赏
  • 举报
回复
因为游标只移动了两次啊.

按person_id,name排序,第二条记录当然是:
C. Canada
realgz 2003-12-06
  • 打赏
  • 举报
回复
原来有答案啊,看来我这个习惯不好。
realgz 2003-12-06
  • 打赏
  • 举报
回复
Germany
排序先按PERSON_ID ,PERSON_ID 无法区分时物理顺序产生效果。

34,874

社区成员

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

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