2009-02-06 48 views
0

搜索例如我的表是這裏>>如何從所有領域的SQL

CREATE TABLE tProject( 
name nvarchar(1000), 
Goal ntext, 
Activities ntext, 
Result ntext, 
MonName nvarchar(1000), 
MonGoal ntext, 
MonActivities ntext, 
MonResult ntext, 
TotalFund nvarchar(100)) 

如何從一次性所有的ntext和nvarchar字段進行搜索。

幫我請

+0

請更具體地與你想要什麼。你想返回所有結果,還是搜索所有結果?如果您正在搜索,是否有整列匹配,或在列中搜索單詞? – John 2009-02-06 12:33:53

回答

0

你真的有1000個字符長的名字嗎?星期一名稱,星期一目標是MonName,MonGoal等列嗎?如果是這樣,他們應該被移動到另一個表並鏈接到這個。 TotalFund聽起來更像是一個數字列而不是nvarchar。根據這些問題的答案,您可能需要先了解一些基本的數據庫設計實踐之後重新設計數據庫,然後再爲時已晚。

無論如何,我認爲這是你在找什麼:

SELECT 
    name, 
    Goal 
    Activities, 
    Result, 
    MonName, 
    MonGoal, 
    MonActivities, 
    MonResult, 
    TotalFund 
FROM 
    tProject 
WHERE 
    name LIKE '%' + @search_string + '%' OR 
    Goal LIKE '%' + @search_string + '%' OR 
    Activities LIKE '%' + @search_string + '%' OR 
    Result LIKE '%' + @search_string + '%' OR 
    MonName LIKE '%' + @search_string + '%' OR 
    MonGoal LIKE '%' + @search_string + '%' OR 
    MonActivities LIKE '%' + @search_string + '%' OR 
    MonResult LIKE '%' + @search_string + '%' OR 
    TotalFun LIKE '%' + @search_string + '%' 

您還可以查看到完整的文本字符串搜索,雖然我不知道這是否會令任何簡單。

0

如果你的意思是創建對匹配多個列的表中選擇命令。

select * from tProject where name like '%text%' or Goal like '%text%' or...;