一个比较复杂的条件查询
现在我有两个表,
电子介质表 ElectronicInfo,主要记录光盘和磁带两种介质的信息,字段如下:
id
el_name --名字
el_inlibdate --入库日期
el_typeid --类型id,1表示光盘,2表示磁带
另外有一个系统设置表sysset,字段如下:
sysset_id
CDStorageLife --光盘的存贮期限
TapeStorageLife --磁带的存贮期限
我想查询结果集是这样的:
el_name el_inlibdate 存贮期限(就是如果它是光盘就显示光盘的存贮期限,是磁带就显示磁带的存贮期限)
那么该怎么写这个查询语句呢?
------解决方案--------------------Select a.el_name,(case when a.el_typeid=1 then b.CDStorageLife
else b.TapeStorageLife end) as el_inlibdate
from ElectronicInfo a,sysset b
where a.id=b.sysset_id
------解决方案--------------------1、Select A.el_name,A.el_inlibdate,Decode(A.el_typeid,1,B.CDStorageLife,2,B.TapeStorageLife) from ElectronicInfo A,sysset B
在这种情况下我认为sysset中只有一条记录
2、Select A.el_name,A.el_inlibdate,Decode(A.el_typeid,1,B.CDStorageLife,2,B.TapeStorageLife) from ElectronicInfo A,sysset B where B.sysset_id= '关于某类介质的一个类型编码 '
在这种情况下我认为sysset中sysset_id是用来对编码进行分类的。