现有有三张表Student 表  
ID  Name 
1   学生1
2   学生2
3   学生3Teacher 表 
ID  Name
1   老师1
2   老师2
3   老师3ClassRoom 表
ID  Name
1   教室1
2   教室2
3   教室3现有以下数据
ID  TableName(表名)
1    Student
3    Student
1    Teacher
2    Teacher
3    ClassRoom现在要求用以上的数据,用SQL语句自动变成
ID  Name  TableName
1   学生1   Student
3   学生3   Student
1   老师1   Teacher
2   老师2   Teacher
3   教室3   ClassRoom就是用 TableName 和 ID 找出它们所对应的 Name,问SQL该怎么写?
谢谢大家!!!
   

解决方案 »

  1.   

    用create table然后再insert行不行?
      

  2.   

    首先新增一列然后,这个可以用类似于这样的方法:
    UPdate table1 when  (TableName in 'Student') then
                     set newcol=(select name from Student where table1.id=Student.id)
                  when ......
                  else ......
    或者也可以用decode方法去判断
      

  3.   

    现有以下数据
    ID  TableName(表名)
    1    Student
    3    Student
    1    Teacher
    2    Teacher
    3    ClassRoom
    ------------------------------------------------------
    这些数据都是存储在一个表中的,还是你联合查询出来的?
    假定你这些数据是存储于一个表中,表明为V_TableName你可是这样试试
    Select a.ID,
           a.TableName,
           Case
               When TableName = 'Student' Then (Select Name From Student Where ID = a.ID)
       When TableName = 'Teacher' Then (Select Name From Teacher Where ID = a.ID)
       When TableName = 'ClassRoom' Then (Select Name From ClassRoom Where ID = a.ID)
           End Name
      From V_TableName a本人愚见,如遇高手,还请指点一二,板砖就免了。
               
      

  4.   

    是不是可以看成一个union的过程啊。