请问下这种情况下的sql语句应该如何写

请教下这种情况下的sql语句应该怎么写?
现在有2张表

-----------------
第1张表    tmp1  
sno     sw
 1      '第1位'
 2      '第1位'
 3      '第3位'
 4      '第2位'

sw字段值只有 ‘第1位’,‘第2位’,‘第3位’ 这3种情况


-----------------------
第2张表   tmp2
sno    第1位   第2位  第3位
 1      ‘a’    'b'   'c'
 2      ‘d’    'e'   'f'
 3      ‘g’    'h'   'i'
 4      ‘j’    'k'   'l'


***********************
要求,在满足sno相同的情况下,根据第一张表的 sw字段值,在第二张表中只查询出 sw字段值对应的字段名对应的记录。

我是这样写的:
select a.sno,a.&b.sw as newzd from tmp1 a,tmp2 b where a.sno=b.sno  


总是报语法错误,应该是 ‘a.&b.sw’这个地方出错,但是找不到解决办法,请各位老师指点下。
sql语句

------解决方案--------------------
不能

sno    第1位   第2位  第3位
  1      ‘a’    'b'   'c'
修改
sno  type value
1    1    a
1    2    b
1    3    c

与工作表连接,再生成交叉表