SQL DB2:使用WHERE子查询不会产生结果

时间:2017-09-14 14:29:52

标签: sql db2 subquery

我在DB2表的where子句中使用子查询。以下产生没有结果:

SELECT b.people
FROM PLACES_TABLE A
JOIN PERSON_TABLE B ON A.ID = B.ID
WHERE B.AGR_ID IN (
  SELECT AGR_ID
  FROM AGREEMENT_TABLE
  WHERE AGR_CODE = 'AGR_CODE_01'
  WITH UR;
)

虽然以下确实产生了结果:

SELECT b.people
FROM PLACES_TABLE A
JOIN PERSON_TABLE B ON A.ID = B.ID
WHERE B.AGR_ID IN (
  'AGR0001', 'AGR0002', 'AGR0003'  
)

在我的第一个例子中,'where'子查询部分在自己运行时产生正确的ID(AGR0001,AGR0002,AGR0003)。但与主查询一起,我什么也得不到。第二个示例具有相同的ID但仍返回结果。

在子查询返回char值的位置是否需要进行某些操作?

1 个答案:

答案 0 :(得分:2)

可能是“With UR;”发现在下面的片段?

也许是半结肠?

SELECT b.people
FROM PLACES_TABLE A
JOIN PERSON_TABLE B ON A.ID = B.ID
WHERE B.AGR_ID IN (
  SELECT AGR_ID
  FROM AGREEMENT_TABLE
  WHERE AGR_CODE = 'AGR_CODE_01'
  WITH UR;
)