t1:proTitle|proRank
    教授级高工|高工
    高工|高工
    工程师|工程师
    其他|其他
t2: userName|proTitle
    张三|教授级高工
    李四|高工
    王五|助工
    六六|工程师需要生成下列的的信息
userName|proTitle|proRank
    张三|教授级高工|高工
    李四|高工|高工
    王五|助工|其他
    六六|工程师|工程师

解决方案 »

  1.   

    select t2.* , t1.proRank
    from t2 , t1
    where t2.proTitle = t1.proTitle
      

  2.   

    select * from 
    t2 left join t1 on t2.protitle=t1.protitle
      

  3.   

    --> 测试数据:#1
    if object_id('tempdb.dbo.#1') is not null drop table #1
    create table #1(proTitle varchar(10), proRank varchar(8))
    insert into #1
    select '教授级高工', '高工' union all
    select '高工', '高工' union all
    select '工程师', '工程师' union all
    select '其他', '其他'
    --> 测试数据:#2
    if object_id('tempdb.dbo.#2') is not null drop table #2
    create table #2(userName varchar(8), proTitle varchar(10))
    insert into #2
    select '张三', '教授级高工' union all
    select '李四', '高工' union all
    select '王五', '助工' union all
    select '六六', '工程师'select a.*, isnull(b.proRank,'其他')proRank from #2 a left join #1 b on a.proTitle=b.proTitle/*
    userName proTitle   proRank
    -------- ---------- --------
    张三     教授级高工 高工
    李四     高工       高工
    王五     助工       其他
    六六     工程师     工程师
    */
      

  4.   

    create table t1(proTitle varchar(20),proRank varchar(20))
    insert into t1 values('教授级高工','高工')
    insert into t1 values('高工'      ,'高工')
    insert into t1 values('工程师'    ,'工程师')
    insert into t1 values('其他'      ,'其他')
    create table t2(userName varchar(20),proTitle varchar(20))
    insert into t2 values('张三','教授级高工')
    insert into t2 values('李四','高工')
    insert into t2 values('王五','助工')
    insert into t2 values('六六','工程师')
    goselect t2.* , isnull(t1.proRank,'其他') proRank
    from t2 left join t1
    on t2.proTitle = t1.proTitledrop table t2 , t1/*
    userName             proTitle             proRank              
    -------------------- -------------------- -------------------- 
    张三                   教授级高工                高工
    李四                   高工                   高工
    王五                   助工                   其他
    六六                   工程师                  工程师(所影响的行数为 4 行)
    */create table t1(proTitle varchar(20),proRank varchar(20))
    insert into t1 values('教授级高工','高工')
    insert into t1 values('高工'      ,'高工')
    insert into t1 values('工程师'    ,'工程师')
    insert into t1 values('其他'      ,'其他')
    create table t2(userName varchar(20),proTitle varchar(20))
    insert into t2 values('张三','教授级高工')
    insert into t2 values('李四','高工')
    insert into t2 values('王五','助工')
    insert into t2 values('六六','工程师')
    goselect t2.* , t1.proRank
    from t2 , t1
    where t2.proTitle = t1.proTitle
    union all
    select t2.* , '其他' proRank
    from t2 where proTitle not in (select proTitle from t1)drop table t2 , t1/*
    userName             proTitle             proRank              
    -------------------- -------------------- -------------------- 
    张三                   教授级高工                高工
    李四                   高工                   高工
    六六                   工程师                  工程师
    王五                   助工                   其他(所影响的行数为 4 行)
    */