我写了这样的查询:
select *
from DATASYNCH_HA_TO_TRG_AUDIT_HIST
where PSX_BATCH_ID IN (select PSX_BATCH_ID
from DATASYNCH_HA_TO_TRG_AUDIT_T
);
这里,当我单独执行子查询时,它会产生一些值,当我将这些值放在子查询的位置时,主查询也会返回一些值。但是,当我使用整个查询时,它确实没有任何值。怎么可能?
答案 0 :(得分:0)
希望PSX_BATCH_ID列的数据类型为整数。如果是varchar字段,则修整该值。
选择* 来自DATASYNCH_HA_TO_TRG_AUDIT_HIST 在哪里修剪(PSX_BATCH_ID) (从DATASYNCH_HA_TO_TRG_AUDIT_T中选择TRIM(PSX_BATCH_ID));
使用JOIN代替使用IN查询
选择* 从DATASYNCH_HA_TO_TRG_AUDIT_HIST A INNER JOIN DATASYNCH_HA_TO_TRG_AUDIT_T B 开启(A.PSX_BATCH_ID = B.PSX_BATCH_ID)
答案 1 :(得分:0)
真的,对不起,我发现这实际上是数据库问题。我最近在一个过程中运行了查询,一切正常。