![](/img/trans.png)
[英]Oracle SQL - Using the results from two queries as the WHERE condition in another
[英]Oracle SQL - Parameter in where condition to search two values from one
我有这种情况:在I_COMPANY表中标识了一家公司,并在IC_COMPANY_CODE列中具有唯一代码,在IC_COMPANY_DESC列中具有描述。
记录示例:
在此示例查询SQL中,在WHERE条件下,我想插入一个参数:IC_COMPANY_CODE ='901',并且查询搜索结果必须在数据集901和902中显示记录,如何编写此查询?
SELECT IC_COMPANY_CODE, IC_COMPANY_DESC
FROM I_COMPANY
WHERE IC_COMPANY_CODE = :IC_COMPANY_CODE -- > how to insert 901 string and display result for 901 and 902?
谢谢
您可以在子查询中获取描述,并返回带有描述的所有记录
SELECT IC_COMPANY_CODE, IC_COMPANY_DESC
FROM I_COMPANY
WHERE IC_COMPANY_DESC IN (SELECT IC_COMPANY_DESC
FROM I_COMPANY
WHERE IC_COMPANY_CODE = :IC_COMPANY_CODE)
您可以使用子查询(假设给定IC_COMPANY_CODE
仅一行)
SELECT *
FROM I_COMPANY
WHERE IC_COMPANY_DESC =
(
SELECT IC_COMPANY_DESC
FROM I_COMPANY
WHERE IC_COMPANY_CODE = :IC_COMPANY_CODE
)
或将表加入自身:
SELECT C2.IC_COMPANY_CODE, IC_COMPANY_DESC
FROM I_COMPANY C1
INNER JOIN I_COMPANY C2
USING (IC_COMPANY_DESC)
WHERE C1.IC_COMPANY_CODE = :IC_COMPANY_CODE
我已解决在WHERE条件下应用此问题的决心:
DECODE(IC_COMPANY_CODE,'901','902','903','904',IC_COMANY_CODE)=:IC_COMANY_CODE
谢谢你的支持
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.