2013-05-07 28 views
0

我希望能夠輸入一個單詞到「其中」條款,並搜索所有該單詞是類似於可以這樣做CHARINDEX找到相關的文字或類似

DECLARE @Test VARCHAR (200) 
SET @Test = 'Red' 

SELECT  H.Name, O.Name AS 'Owner', S.SilksName, T.Name AS 'Trainer' 
FROM   Horse H 
INNER JOIN Owner O on CHARINDEX(@Test,O.Name) <> 0 or 
INNER JOIN Trainer T ON CHARINDEX(@Test,T.Name) <> 0 or 
INNER JOIN Runners R ON Horse.Horse_Skey = Runners.Horse_Skey 
INNER JOIN Silks S ON CHARINDEX(@Test,S.SilksName) <> 0 or 
INNER JOIN Jockey J ON CHARINDEX(@Test,J.FirstName) <> 0 

WHERE @Test = 'Red' 
+0

您正在尋找「SQL Server中的全文搜索」。 (在你的搜索引擎中輸入這些單詞並點擊搜索按鈕。) – 2013-05-07 07:58:45

+0

WHERE @Test ='%Red%' – 2013-05-07 08:00:01

+0

Hi Alpesh我收到以下錯誤消息 Msg 156,Level 15,State 1,Line 7 語法錯誤靠近關鍵字'INNER'。 – wafw1971 2013-05-07 08:08:03

回答

0
DECLARE @Test VARCHAR (200) 
SET @Test = 'Red' 

SELECT  H.Name, O.Name AS 'Owner', S.SilksName, T.Name AS 'Trainer' 
FROM   Horse H 
inner JOIN Runners R ON Horse.Horse_Skey = r.Horse_Skey 
left JOIN Owner O on CHARINDEX(@Test,O.Name) <> 0 
left JOIN Trainer T ON CHARINDEX(@Test,T.Name) <> 0  
left JOIN Silks S ON CHARINDEX(@Test,S.SilksName) <> 0 
left JOIN Jockey J ON CHARINDEX(@Test,J.FirstName) <> 0 
where ((O.Name is not null) or (T.Name is not null) or (S.SilksName is not null) or (J.FirstName is not null) ) 
表或文字

INNER JOIN與必須存在並且與其他人左連接的表,當然在where子句中可能需要一些條件。 其中子句條件已更新

+0

嗨Kojtaba謝謝你,但我仍然收到以下錯誤信息: Msg 4104,級別16,狀態1,行8 無法綁定多部分標識符「Horse.Horse_Skey」。 Msg 4104,Level 16,State 1,Line 8 無法綁定多部分標識符「Runners.Horse_Skey」。 你知道爲什麼嗎? – wafw1971 2013-05-07 08:27:37

+0

「Horse.Horse_Skey」無法綁定,請檢查您的表格設計是否爲字段名稱拼寫檢查。 – mojtaba 2013-05-07 08:42:20

+0

嗨Mojtaba它似乎工作在一種時尚,它帶來了很多線回來例如,當我把這個詞Fry它應該返回兩行,但它帶回來8我該怎麼辦 – wafw1971 2013-05-07 08:50:11

相關問題