case 在2表之间关联时的用法:
declare @classid int
set @Classid=2
SELECT * FROM Employee a JOIN EmUp b ON b.EmUpid=CASE WHEN @Classid=1 THEN a.EmPower
WHEN @Classid=2 THEN a.EmCelerity
WHEN @Classid=3 THEN a.EmWisdom
WHEN @Classid=4 THEN a.EmCharm
END
WHERE a.Emid=2
此种做法是的需求是:当一张表的一个字段要求和另外一张表的某些字段(这些字段是要根据输入参数的值不同,需要的关联的字段也不同)
以上一种雇员升级的做法
declare @classid int
set @Classid=2
SELECT * FROM Employee a JOIN EmUp b ON b.EmUpid=CASE WHEN @Classid=1 THEN a.EmPower
WHEN @Classid=2 THEN a.EmCelerity
WHEN @Classid=3 THEN a.EmWisdom
WHEN @Classid=4 THEN a.EmCharm
END
WHERE a.Emid=2
此种做法是的需求是:当一张表的一个字段要求和另外一张表的某些字段(这些字段是要根据输入参数的值不同,需要的关联的字段也不同)
以上一种雇员升级的做法