日期:2014-05-17  浏览次数:20916 次

sql语句求助!如何动态创建表?如何order by 2000个字段?如何group by 1999个字段?
1、我想sql语句执行过程中动态生成一个management表,这个表有200个字段,如何实现?
create table management(it1,it2,...,it100)
括号里的那一百个字段能不用手写自动生成吗?比如弄个变量k,1<=k<=100,然后生成it1到it100?

2、我要对employment表中的按全部一百个字段进行升序排序,order by ui1,ui2,ui3,...,ui2000。即第一个相同时,按第二个排序,第二个相同时,按第三个排序,......,因为字段太多了,我不想手写,怎么实现?

3、我要对employment表按后99个字段进行分组,group by er2,er3,...,er2000。这个我也不想一个一个的手写,怎么实现?

请求大家会的尽快回复我,在线等!!先拜谢各位!

------解决方案--------------------
你用C#或者java等 把创表的代码发过去 在C#或者java里面写循环吧!
------解决方案--------------------
或者写个存储过程 或者函数
------解决方案--------------------
你用C#或者java等 把创表的代码发过去 在C#或者java里面写循环吧!
------解决方案--------------------
可以利用excel自动生成项目名。

------解决方案--------------------
DECLARE
i int ;
BEGIN
dbms_output.put_line('create table t_test (');
FOR i IN 1..10 LOOP
IF i = 10 THEN
dbms_output.put_line('field' || to_char(i) || ' int');
else
dbms_output.put_line('field' || to_char(i) || ' int,');
END IF ;
END LOOP ;
dbms_output.put_line(')');
END ;

--把结果拷贝出来,再执行即可
--不过字段类型如果不统一,将是个大问题。
create table t_test (
field1 int,
field2 int,
field3 int,
field4 int,
field5 int,
field6 int,
field7 int,
field8 int,
field9 int,
field10 int
)