oracle中怎样用一个sql语句根据同一表中不同字段的条件查询该表中另一字段中不同的值
展开全部
首先你这里的不同字段 应该有个优先级别,类似先判断哪个字段然后判断哪个字段..
如果仅仅以字段 和 字段值 来作为条件 用DECODE 套 DECODE 直到符合你的逻辑需求。
如果牵扯到两个字段值的比较 例如 如果字段A等于字段B则显示XXX 这种判断请使用NULLIF配合DECODE也可以用WHEN CASE (9以前可能不支持NULLIF)
如果是模糊比较例如 字段A 大于字段B 需要更多的函数来判断 常用的有 SIGN..通过加减法之后的结果来判断两个字段大小。
如果仅仅以字段 和 字段值 来作为条件 用DECODE 套 DECODE 直到符合你的逻辑需求。
如果牵扯到两个字段值的比较 例如 如果字段A等于字段B则显示XXX 这种判断请使用NULLIF配合DECODE也可以用WHEN CASE (9以前可能不支持NULLIF)
如果是模糊比较例如 字段A 大于字段B 需要更多的函数来判断 常用的有 SIGN..通过加减法之后的结果来判断两个字段大小。
追问
比如有表table,有A,B,C,三个字段C中有1,2,3,4几个值,我需要根据AB中不同值查对应的C中的值。select C from table where A=…and B=…。
追答
select A,B,DECODE(A,'X',C),DECODE(B,'X',C) from tab
你不说你所谓的判断逻辑我只能这么写..
举个例子 查 C 条件 如果 A=1 ,B=2 则显示C 如果A=2,显示3 如果B=3 显示0 其他全部显示 X
select dcode(a,1,decode(b,2,C),2,3,decode(B,3,0,'x') from tab;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--记得及时采纳,今天任务还没完成,只差一个了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询