2013-04-11 27 views
1

这是I'm思考:SQL:使用到哪里去寻找当前的查询与参数

DECLARE @Search varchar(150) 
SET @Search = 'CompanyName' 

SELECT a, b, c, d, e 
FROM Table 
WHERE a, b, c, d, e in (@Search) 

这可能吗?如果是的话,可以在WHERE条件设置为:

WHERE a, b, c, d, e in (('%')+(@Search)) 

因此,它会根据搜索中搜索所有连接?

+0

我不清楚你想达到什么目的。你是否试图选择'a,b,c,d'或'e'包含字符串''Companyname''的行? – 2013-04-11 11:48:14

+0

翻转它? (在(a,b,c,d,e)中@search) - 你不能在'()'中使用通配符,你需要分解成'或'。 – 2013-04-11 11:48:47

回答

1

这将工作!

DECLARE @Search varchar(150) 
SET @Search = 'CompanyName' 

SELECT a, b, c, d, e 
FROM Table 
WHERE a = @Search or 
     b = @Search or 
     c = @Search or 
     d = @Search or 
     e = @Search 


SELECT a, b, c, d, e 
    FROM Table 
    WHERE a like '%' + @Search + '%' or 
      b like '%' + @Search + '%' or 
      c like '%' + @Search + '%' or 
      d like '%' + @Search + '%' or 
      e like '%' + @Search + '%' 
+1

确定看起来不错,但我遇到了不应弹出的空数据的问题。使用你的例子,并添加:其中a不为空等 – AceAlfred 2013-04-11 12:06:28

+0

以及:<>'' – AceAlfred 2013-04-11 12:07:05