2009-02-06 62 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...;