2014-09-23 38 views
0

上午通過多個搜索模式,以SQL語句,如何使用WHERE IN子句具有以下數據表

+----------+---------+ 
    | Country | Product | 
    +----------+---------+ 
    | Poland | Lyca | 
    | USA  | Lyca | 
    | UK  | GT  | 
    | Spain | GT  | 
    | Swiss | Lyca | 
    | Portugal | GT  | 
    +----------+---------+ 

從上面的表格,我想用它給出的查詢來獲取數據下面,

Select Country,Product from tab where Country in ('%pai%','%U%') 

查詢正在執行,但我得到空的結果。所以,請確認我,上述查詢是否有效。

+0

您的'IN'條件會將國家值與列出的字符串進行比較,您空的結果的原因('%'字符只用於替換LIKE'條件) – 2014-09-23 13:29:06

+0

http:// stackoverflow.com/questions/1865353/combining-like-and-in-for-sql-server – Aramillo 2014-09-23 13:39:37

回答

3

使用likeor

Select Country,Product 
from tab 
where Country like '%pai%' or 
     Country like '%U%'; 
+0

我沒有看到另一種解決方案來獲得預期的結果... +1 – 2014-09-23 13:30:12

+0

它的工作..謝謝你 – Siva 2014-09-23 13:32:58

0

讓您的圖案劃分爲單獨的表:

 
PATTERNTABLE 
SessionKey  Pattern 
----------  ------- 
abc123   %pai% 
abc123   %U% 

,然後加入到它:

SELECT Country, Product 
FROM Tab t 
INNER JOIN PatternTable pt ON pt.SessionKey= @SessionKey 
    and t.Country LIKE pt.Pattern 

的訣竅是在怎麼說模式表被填充。