CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

有关SQL查询语句中变量的问题

楼主yajunchen(亚军)2003-11-04 19:54:47 在 MS-SQL Server / 疑难问题 提问

请教各位大侠另外一个问题,此问题让小弟困惑了一下午,至尽忍不明白,希望能得到各位的指点。  
  (我的环境:MS   SQL   +   Apache   +   resin(用jsp实现))  
   
  我要在一个表的索引表中找出一些需要的表的表名,通过一个select语句把这些表名找出来了(假如有2个表名,sign1,sign2),并且放到了一个字符串数组里,然后通过一个循环,把这2个表的数据依次显示出来(每个表里有7列数据,都是字符串)。  
   
  我的第一个表里有2行数据,第二个表里有1101行数据,如果我用下面的SQL语句进行选择,则,第一个表的内容全部显示,而第二个表的内容只显示到1086行,第1087行就中间提示错误。  
  theSQL   =   "select   *   from   "   +   selectedTable[thenum]   ;  
   
  然而,如果我只用下面这一条语句来显示第二个表的内容,则可以把所有的1101行内容全部显示完毕。  
  theSQL   =   "select   *   from   sign2;  
   
  多谢,多谢 问题点数:0、回复次数:5Top

1 楼gmlxf(烛光)回复于 2003-11-04 20:00:48 得分 0

应该是你的前台程序的问题吧。  
  如果想联合,可以  
  select   *   from   sign1   union   select   *   from   sign2...  
   
  theSQL   =theSQL   +   "   union   select   *   from   "   +   selectedTable[thenum]   ;Top

2 楼zjcxc(邹建)回复于 2003-11-04 20:50:13 得分 0

将你的代码贴出来看看.Top

3 楼yajunchen(亚军)回复于 2003-11-04 21:28:30 得分 0

我建立了一个表的索引表index,index表里根据college和grade的不同组合可以对应不同的表,如sign1,sign2,sign3......而sign1,sign2,sign3......表里存放了一些信息(如成绩信息等)。  
  现在我需要根据用户输入的信息,动态的从index表里选出相应的表,比如选中了sign1和sign2表,然后再到sign1,sign2表里去查询和显示相关的信息。  
  用SQL语句实现的时候,语句为:  
  select   tablename    
  from   index      
  where   college   =   '计算机学院'  
              ((grade   =   '2003级')   or   (grade   =   '2002级'))  
   
  通过此语句,可以得到一个结果集(ResultSet),例如为rs,但是由于在程序的运行过程中,年级(grade)是可选的,也就是实现说不知道到底会对应几个年级,因此也就不知道结果集rs里到底有多少个数据。  
   
  我想从结果集rs   里取出数据(相应的表名),然后存放到一个字符串数组里,最后通过循环来把选出来的每张表的数据取出来,进行显示。  
   
  然而由于事先不知道结果集rs里有多少个数据,所以在定义字符串数组时,就只好人为的定义为5。  
  结果在运行的时候总是有一些不太对劲的地方,就是我上面提问时出现的问题,但是如果我的查询的表只有2张,那么直接把字符串数组定义为2,就没有什么问题了。但是这个长度毕竟是变化的,我应该怎么办呢?  
   
  请教各位,有没有什么好的办法来解决这个问题。  
   
  我想了几种:  
  (1)是否能从结果集rs中直接取得结果集中的数据个数。  
  (2)是否能用别的方法来定义一个不需要长度限制的数据结构来存放表名信息。  
  (3)是否有更好的办法?如Vector或者Hash表的方式。  
  Top

4 楼gmlxf(烛光)回复于 2003-11-04 22:40:18 得分 0

你不要定义字符串数组,直接在符合你的条件的表中查询出来。  
  你的那些表的字段都是怎么样的?是结构一样的吗,如果是你可以连接查询结果。  
  你可以用动态sql,存储过程来实现。  
  Top

5 楼yajunchen(亚军)回复于 2003-11-05 20:01:22 得分 0

那我直接用下面这条语句可以吗?  
  select   *  
  from   (select   tablename    
              from   record_index  
              where   college   =   '软件学院'    
                          and   grade   =   '2003级')  
  where   issigned   =   "否"  
  Top

相关问题

  • 在activereport中,soure中的sql语句如何带变量查询。
  • ASP中如何用变量完成SQL查询语句?
  • 如何将SQL语句的查询结果赋给一个变量?
  • 怎么把sql语句中查询出的值赋给变量?送分了!!!!
  • sybase 利用sql语句查询变量的问题,高分盼解。
  • sql语句查询时,表的字段名可以用变量吗?
  • SQL查询语句
  • Sql 查询语句
  • SQL查询语句
  • sql语句查询

关键词

  • 语句
  • 数据
  • 内容
  • 信息
  • sql
  • 表
  • 表里
  • thesql
  • sign
  • 字符串

得分解答快速导航

  • 帖主:yajunchen

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo