应该是你的前台程序的问题吧。
如果想联合,可以
select * from sign1 union select * from sign2...theSQL =theSQL + " union select * from " + selectedTable[thenum] ;
如果想联合,可以
select * from sign1 union select * from sign2...theSQL =theSQL + " union select * from " + selectedTable[thenum] ;
现在我需要根据用户输入的信息,动态的从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表的方式。
你的那些表的字段都是怎么样的?是结构一样的吗,如果是你可以连接查询结果。
你可以用动态sql,存储过程来实现。
select *
from (select tablename
from record_index
where college = '软件学院'
and grade = '2003级')
where issigned = "否"