我在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值的位置是否需要进行某些操作?
答案 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;
)