t1:proTitle|proRank
教授级高工|高工
高工|高工
工程师|工程师
其他|其他
t2: userName|proTitle
张三|教授级高工
李四|高工
王五|助工
六六|工程师需要生成下列的的信息
userName|proTitle|proRank
张三|教授级高工|高工
李四|高工|高工
王五|助工|其他
六六|工程师|工程师
教授级高工|高工
高工|高工
工程师|工程师
其他|其他
t2: userName|proTitle
张三|教授级高工
李四|高工
王五|助工
六六|工程师需要生成下列的的信息
userName|proTitle|proRank
张三|教授级高工|高工
李四|高工|高工
王五|助工|其他
六六|工程师|工程师
from t2 , t1
where t2.proTitle = t1.proTitle
t2 left join t1 on t2.protitle=t1.protitle
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
-------- ---------- --------
张三 教授级高工 高工
李四 高工 高工
王五 助工 其他
六六 工程师 工程师
*/
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 行)
*/