-1

SELECT ステートメントがあります。

SELECT * 
FROM TABLE1 t1,TABLE2 t2 
WHERE t1.tid=t2.tid 
    AND t1.Col21 IN   ('103271','103280','107114','108083','116762','118462','119233','120562','125833','129706')

これはデータを返しませんが、Col21 に上記のすべての値のレコードがあることはわかっています。

トリム(Col21)を試しましたが、まだデータがありません。

どんな助けでも感謝します。

4

1 に答える 1

1

Col21まず、安心のために、このクエリに一致する行があることを確認してください。

SELECT * 
  FROM TABLE1 t1
 WHERE t1.Col21 IN ('103271','103280','107114','108083','116762','118462',
                    '119233','120562','125833','129706')

それが行を返す場合、提示されたクエリが何も返さない理由は、に対する結合によるものTABLE2です。おそらく、外部結合を行うつもりでしたか?その場合は、次のようにしてみてください。

SELECT * 
  FROM TABLE1 t1,TABLE2 t2 
 WHERE t1.tid=t2.tid(+)
   AND t1.Col21 IN ('103271','103280','107114','108083','116762','118462',
                    '119233','120562','125833','129706')

これにより、 に対応するt2.tid行が存在しない にnull が許可され、 に一致するすべての行が常に返されることが保証されます。TABLE2TABLE1TABLE1

于 2012-08-16T22:17:58.973 に答える