SQL子查询返回的值多于一个 请问如何调整? |
答題得分者是:harpist
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
学员表:
学号 姓名 年龄 班级 101 张A 18 一班 102 张B 19 一班 201 李C 17 二班 202 王D 18 二班 301 张E 19 三班 302 吴F 19 三班 303 张G 19 三班 想以姓氏作检索 检索出 有该姓氏的 同班级的所有同学资料 并显示在DBGRID中 select * from 学员表 where 班级=(select 学员表.班级 from 学员表 where (学员表.姓名 like '张' '%')) 执行 提示错误:子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。 请问这里需要如何调整? 另:我又用游标处理了一下 查询分析器里都是OK的 但通过DBGRID显示 则只显示一班的记录 DBGRID没有显示三班的 谢谢大家 |
harpist
資深會員 發表:3 回覆:251 積分:430 註冊:2002-10-03 發送簡訊給我 |
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
|
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
把 = 改成 in
select * from 学员表 where 班级 in (select 学员表.班级 from 学员表 where (学员表.姓名 like '张%')) 或著用 join的方式 select T1.* from 学员表 T1 Join 学员表 T2 On T1.班級 = T2.班級 where T2.姓名 like '张%' ===================引 用 baby2321 文 章=================== 学员表: 学号 姓名 年龄班级 101 张A 18一班 102张B19 一班 201李C 17 二班 202王D 18 二班 301张E 19 三班 302吴F 19 三班 303 张G19 三班 想以姓氏作检索 检索出 有该姓氏的 同班级的所有同学资料 并显示在DBGRID中 select * from 学员表 where 班级=(select 学员表.班级 from 学员表 where (学员表.姓名 like'张' '%')) 执行 提示错误:子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。 请问这里需要如何调整? 另:我又用游标处理了一下 查询分析器里都是OK的 但通过DBGRID显示 则只显示一班的记录 DBGRID没有显示三班的 谢谢大家
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL |
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |