问题一:两张表,sx_sy(学号,姓名,年龄),和sy(学号,年龄),
sx_sy三条记录(1,张三,null),(2,李四,null),(3,王麻子,null);
sy两条记录(1,20),(3,18);
现在我想把sy的内容插到sx_sy中,使sx_sy有三条记录(1,张三,20),(2,李四,null),(3,王麻子,18),
sql语句怎么写?
谢谢了~问题二:查询表的时候可以用order by排序,那么在向一个表中插入内容时,可不可以按顺序插进去?
比如,原表中有1,3,插入2后,使排序是1,2,3,而不是1,3,2,
请问,可以实现吗?如果可以,sql怎么写?

解决方案 »

  1.   

    1、update sx_sy set 年龄=(select 年龄 from sy where sy.学号=sx_sy.学号)
    2、这个排序没有什么意义的。物理循序没有任何意义。
      

  2.   

    问题一、使用UPDATE语句就可以了。注意ORACLE的UPDATE语句的语法update sx_sy set 年龄=(select 年龄 from sy where sy.学号=sx_sy.学号) 
    where exists (select 1 from sy where sy.学号=sx_sy.学号)
    问题二、确实,这个排序是没有什么意义的。而且这个不能用SQL实现。物理表的顺序一般是由你插入数据的先后顺序决定的
      

  3.   

    问题一:两张表,sx_sy(学号,姓名,年龄),和sy(学号,年龄), 
    sx_sy三条记录(1,张三,null),(2,李四,null),(3,王麻子,null); 
    sy两条记录(1,20),(3,18); 
    现在我想把sy的内容插到sx_sy中,使sx_sy有三条记录(1,张三,20),(2,李四,null),(3,王麻子,18), 
    sql语句怎么写? 
    谢谢了~ -------------------------
    update sx_sy set 年龄=(select 年龄 from sy where sy.学号=sx_sy.学号) 
    where exists (select 1 from sy where sy.学号=sx_sy.学号)
    问题二:查询表的时候可以用order by排序,那么在向一个表中插入内容时,可不可以按顺序插进去? 
    比如,原表中有1,3,插入2后,使排序是1,2,3,而不是1,3,2, 
    请问,可以实现吗?如果可以,sql怎么写?
    ------------------
    你可以在该字段上建立聚簇索引
      

  4.   

    1、前提是 sy 表中 学号 为主键
    UPDATE (
       SELECT sx_sy.学号 AS 年龄1,
          sy.学号 AS 年龄2
       FROM sx_sy , sy
       WHERE sx_sy.学号 = sy.学号
       )
    SET 年龄1= 年龄22、看ls
      

  5.   

    问题2,我不晓得你用的是什么客户端,如果是pl/sql developer就有个这样按钮.
    来决定你的显示循序.