使用Wild Card

时间:2016-07-03 17:09:46

标签: sql sql-server wildcard

你好大师。

        SELECT 

        Hardlines_PTI.PTI, 
        Hardlines_PTI.[Product Line] as Product_Line,
        TT_Data.CASE_ID as TT_ID,
        TT_Data.STATUS as TT_Status

        FROM Hardlines_PTI CROSS JOIN TT_Data

        WHERE

        TT_Data.SHORT_DESCRIPTION LIKE '%' +Hardlines_PTI.PTI+ '%'

        ORDER BY Hardlines_PTI.PTI

这是当前正在使用但未获得任何输出的查询。

尝试使用PTI作为通配符从TT_Data表中获取PTI列表,以确定它是否存在于TT_Data.Short_Description列中。

请告诉我这里的错误。 在此先感谢!

1 个答案:

答案 0 :(得分:1)

我会写这样的查询:

SELECT p.PTI, p.[Product Line] as Product_Line, p.CASE_ID as TT_ID,
       d.STATUS as TT_Status
FROM Hardlines_PTI p JOIN
     TT_Data d
     ON d.SHORT_DESCRIPTION LIKE '%' + p.PTI + '%'
ORDER BY p.PTI;

但是,这应该产生与查询相同的输出。如果没有,那么这里有一些可能性:

  • 没有比赛。
  • 一列或多列具有“隐藏”或“同义”字符。这取决于字符集。
  • 您有区分大小写的排序规则,在这种情况下,您可以将两边包装在lower()中:

     ON LOWER(d.SHORT_DESCRIPTION) LIKE '%' + LOWER(p.PTI) + '%'