使用CHARINDEX查找其他列中的值始终返回1条记录

时间:2012-12-05 21:15:54

标签: sql-server

我有一个简单的表

Location, PartNo, LookupPart

我正在尝试查找lookupPart列中存在的PartNo。有点像excel Vlookup,除了我需要近似并在SQL中进行其他计算。

我正在使用

    SELECT Part_No
    FROM Part_tbl 
    WHERE CHARINDEX(PartNo,LookupPart)>0 

PartNo和LookupPart都是VARCHAR。

我收到了1条记录。  但是,如果我使用:

     SELECT Part_No
     FROM Part_tbl 
     WHERE CHARINDEX('538',LookupPart)>0 

我有10条以上的记录开始或包含'538'

我错过了什么?

1 个答案:

答案 0 :(得分:2)

也许这就是你想要的?

SELECT Part_No
FROM Part_tbl t1
WHERE EXISTS (select 1 from Part_tbl t2 WHERE CHARINDEX(t1.PartNo,t2.LookupPart)>0)