在IN子句中使用硬编码值和子查询

时间:2014-02-24 17:39:20

标签: sql db2 dbvisualizer

我有这个问题:

SELECT *
FROM Parent.Table
WHERE Ref_Num IN ('4205' or (SELECT Ref_Num FROM Child.Table WHERE Ref_Num ='234'))
AND Asset_Type IN ('PUMPS','COLL')

此查询不起作用。子查询返回53行,而不是键入所有子项引用号码是否有办法将它们与父项号“4205”一起放入查询中。

感谢。

2 个答案:

答案 0 :(得分:1)

也许你可以试试像

这样的东西
SELECT *
  FROM Parent.Table
  WHERE Ref_Num In (SELECT Ref_Num
                      FROM Child.Table
                      WHERE Ref_Num ='234'
                    UNION
                      SELECT '4205' As Ref_Num
                        FROM SYSIBM.SYSDUMMY1)
    AND Asset_Type IN ('PUMPS','COLL')

请注意,SYSDUMMY1是EBCDIC表。如果需要ASCII,请使用SYSDUMMYA。如果需要Unicode,请使用SYSDUMMYU。

分享并享受。

答案 1 :(得分:0)

是的,使用联合查询

 select 4205 ref_num
 from some_small_table
 union
 select ref_num
 from child.table
 etc